2012-07-01 5 views
20

In meiner application.js Datei, die ich habe:Rails geben Ladereihenfolge von Javascript-Dateien an?

//= require jquery 
//= require jquery_ujs 
//= require underscore 
//= require backbone 
//= require_tree . 
// 
//= require .//community_app 
// 
//= require_tree ../templates/ 
//= require_tree .//models 
//= require_tree .//collections 
//= require_tree .//views 
//= require_tree .//routers 

aber die generierten HTML nicht gehorcht diese Reihenfolge:

<head> 
    <title>CommunityApp</title> 
    <link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" /> 
<link href="/assets/communities.css?body=1" media="all" rel="stylesheet" type="text/css" /> 
<link href="/assets/home.css?body=1" media="all" rel="stylesheet" type="text/css" /> 
    <script src="/assets/jquery.js?body=1" type="text/javascript"></script> 
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script> 
<script src="/assets/underscore.js?body=1" type="text/javascript"></script> 
<script src="/assets/backbone.js?body=1" type="text/javascript"></script> 
<script src="/assets/collections/communities.js?body=1" type="text/javascript"></script> 
<script src="/assets/community_app.js?body=1" type="text/javascript"></script> 
<script src="/assets/home.js?body=1" type="text/javascript"></script> 
<script src="/assets/models/community.js?body=1" type="text/javascript"></script> 
<script src="/assets/application.js?body=1" type="text/javascript"></script> 
    <meta content="authenticity_token" name="csrf-param" /> 
<meta content="ktrLMDYSJaU/mmgmzfpxDfMin7OCXga4K5gVIJZHJUI=" name="csrf-token" /> 
</head> 
<body> 

Kollektionen vor dem Modell geladen wird, die mir Fehler auf der Vorderseite gibt -Ende. Wie kann ich es so machen, dass es die js-Dateien auf spezifische Weise lädt? Dank

Antwort

32

Sie haben noch ein

//= require_tree . 

Höher, das alles wird geladen, offenbar in alphabetischer Reihenfolge. Entfernen Sie das (natürlich sicherstellen, dass alles anderswo erforderlich ist) und Sie sollten in Ordnung sein. Sie können möglicherweise die letzte Zeile Ihrer application.js angeben, aber ich erinnere mich nicht an das angegebene Verhalten, wenn zwei Anweisungen die gleiche Datei erfordern

+2

Danke für die Eingabe. Gibt es eine Möglichkeit, dass ich require_tree nicht alphabetisch laden kann? Was ist der richtige Weg, dies zu tun? – 0xSina

+1

@ 0xSina: Der richtige Weg, um eine bestimmte Reihenfolge angeben, ist, um die Reihenfolge von Hand wie Sie (fast) tun. –

+1

Ich würde die 'require_tree .' entfernen und Dinge in der gewünschten Reihenfolge (möglicherweise mit require_tree in Unterordnern) –

Verwandte Themen