【问题标题】:Rails specify load order of javascript files?Rails指定javascript文件的加载顺序?
【发布时间】:2012-07-01 21:59:08
【问题描述】:

在我的 application.js 文件中,我有:

//= 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

但是生成的html不遵循这个顺序:

<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>

集合在模型之前加载,这给我前端的错误。我怎样才能使它以特定方式加载js文件? 谢谢

【问题讨论】:

    标签: javascript ruby-on-rails ruby asset-pipeline


    【解决方案1】:

    你还有一个

    //= require_tree .
    

    更高,正在加载所有内容,显然是按字母顺序。删除它(显然确保其他地方都需要所有东西),你应该没问题。您也许可以在 application.js 的最后一行设置它,但是当两条语句最终需要同一个文件时,我不记得指定的行为

    【讨论】:

    • 感谢您的意见。有没有办法让 require_tree 不按字母顺序加载?这样做的正确方法是什么?
    • @0xSina:指定特定订单的正确方法是,好吧,像您(几乎)那样手动指定订单。
    • 我会删除 `require_tree .` 并按所需顺序要求内容(可能在子文件夹中使用 require_tree)
    • From the guides: "请注意,require 指令系列会阻止文件在输出中包含两次。"您可以列出需要特殊订单的那些,并且仍然可以使用require_tree .之后。为我工作。
    猜你喜欢
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 2012-02-12
    相关资源
    最近更新 更多