我正在使用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?
答案 0 :(得分:1)
好吧,如果你复制和粘贴的内容是正确的,那么你有一个JavaScript include标记进入你的content_for:css块。这就是为什么在application.js之前需要fancybox的东西。