资产管道订单问题

时间:2012-02-23 00:10:17

标签: ruby-on-rails asset-pipeline

我正在使用Rails 3.1和资产管道。但是我有一个非常奇怪的问题。

我的application.html.haml是:

!!! 5
%html{:xmlns => 'http://www.w3.org/1999/xhtml'}
    %head
        = stylesheet_link_tag 'bootstrap', 'application'
        = yield :css
        %title BizPlug
        %meta{:content => 'text/html; charset=utf-8', 'http-equiv' => 'Content-Type'}
        = csrf_meta_tags
        = javascript_include_tag 'application'
        = yield :js 

在我看来,我尝试使用content_for动态加载js文件,如下所示:

- content_for :css do
    = javascript_include_tag 'jquery.fancybox'
- content_for :js do
    = javascript_include_tag 'jquery.fancybox'  

.edit-panel
    %p.text_actions
        = link_to "Publish", publish_policy_draft_path(@policy_draft), :disable_with => 'Processing...', :method => 'PUT', :class => "primary btn"
        = link_to "Delete", policy_draft_path, :method => 'Delete', :confirm => 'Are you sure', :class => 'btn danger'
        = link_to "Close", policy_drafts_path, :class => 'btn'

然而,当我从浏览器检查源代码时,它给了我

<link href="/assets/bootstrap.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/compositions.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/base.css?body=1" media="screen" rel="stylesheet" type="text/css" />
<link href="/assets/simple.css?body=1" media="screen" rel="stylesheet" type="text/css" />   
<script src="/assets/jquery.fancybox?body=1" type="text/javascript"></script>

    <title>BizPlug</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
    <script src="/assets/jquery.min.js?body=1" type="text/javascript"></script>

我想知道为什么jquery.fancybox.js会高于application.js?

1 个答案:

答案 0 :(得分:1)

好吧,如果你复制和粘贴的内容是正确的,那么你有一个JavaScript include标记进入你的content_for:css块。这就是为什么在application.js之前需要fancybox的东西。