我有两个问题。
我是否错误地假设我的所有javascripts都应该在rails 3.1中默认压缩为application.js,即使在开发模式下也是如此?
如果没有,那么为什么我的标签包含所有30个javascripts并且需要加载?
我的application.js文件如下所示:
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_tree .
在浏览器中,它呈现为:
// This is a manifest file that'll be compiled into including all the files listed below.
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
// be included in the compiled file accessible from http://example.com/assets/application.js
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
;
虽然我的所有其他javascripts都完整呈现。
感谢一帮!
答案 0 :(得分:11)
如果这是一个新的Rails app,默认情况下启用调试模式。调试模式告诉Sprockets将每个文件的标记写入HTML源代码。这样做是为了便于源文件调试。
如果您只想在开发模式下使用一个文件,请转到development.rb并设置:
config.assets.debug = false
这将为每个清单提供一个文件。
默认情况下,压缩不会用于开发,但如果您也想要,则设置:
config.assets.compress = true
您需要将压缩器选项从production.rb移动到application.rb,以便开发环境可以访问它们。
我在开发模式下关闭调试,但由于处理文件需要额外的时间,因此我不使用压缩。