我想从管道中排除特定的javascript文件(modernizr),因为我希望它单独加载。
我想在开始时加载Modernizr,其余的javascript在末尾串联。
在3.1的资产管道中,有没有办法与需求相反的方法?即。排除项?
提前感谢。
亚当
我选择通过更改来保留链轮功能
//= require_tree
to
//= require_directory .
这将使链轮自动加载同一目录中的任何文件,但不会进一步加载任何文件夹中的文件。
这使我可以将Modernizr.js移至asset / javascripts / top文件夹,并使用以下命令手动将其加载到顶部:
<%= javascript_include_tag "top/modernizr" %>
并移动
<%= javascript_include_tag "application" %>
到我的application.html.erb文件的底部(在结束body标记上方)
我意识到这是一个古老的问题,但是Google上周将我发送到了这里,所以这不是一个过时的问题。我在其他地方找到的答案是the "stub" directive for sprockets。所以像
//= require-tree .
//= stub Modernizr
这会使Modernizr.js脱离捆绑资产。它可以包含自己的标签,即原始答案。
Sprockets更新日志说“存根”是在2012年1月添加的,因此在首次回答此问题时尚不可用,但我认为这是一个不错的答案。
通过转到config / environments / production.rb文件并添加以下行,可以轻松完成此操作
config.assets.precompile += %w( modernizr.js )
然后,当您对资产现代化器进行预编译时,将拥有它自己的单独文件,可以在脑海中使用。
这些答案已过时。只需将active_admin.css.scss
从app/assets/stylesheets
移至vendor/assets/stylesheets
。
对active_admin.js.coffee
执行相同操作(从app/assets/javascripts
移至vendor/assets/javascripts
。]
然后将在需要时加载您的资产,并且您不必为了适应active_admin而对applications.js
进行修改。
此解决方案在this issue中进行了描述。希望这会有所帮助。