【发布时间】:2012-05-05 02:38:54
【问题描述】:
在 main.js 中,我有:
$(document).ready(
function(){
alert('foo');
});
app/assets/javascripts/application.js 有:
//= require jquery
//= require jquery_ujs
//= require main
正在开发中。运行rake assets:precompile 后,我刷新任何页面,它执行alert('foo') 两次。它应该只做一次。好像加载了两个 main.js 副本。
我做错了吗?
【问题讨论】:
-
如果你删除那些预编译的资产并在 dev 中运行,它是否只警告一次?想知道 dev 是否同时加载、编译和现有文件。
-
是的,如果我删除预编译的资产。它会发出一次警报。似乎 dev 正在加载两者。已编译和现有文件?应该这样做吗?
-
听起来开发模式正在同时运行......我猜有一种方法可以关闭它。无论如何,它不应该发生在 prod 中——至少我猜 :-)
-
嗯,我猜它不会在生产中发生,因为
config.serve_static_assets = false存在于config/environments/production.rb中。我把同一行放在config/environments/development.rb中,它只警告一次。但这是正确的方法吗? -
也许在 development.rb 中设置:config.assets.debug = false?或者只是不要在开发模式下预编译。我知道我没有;-)
标签: ruby-on-rails ruby-on-rails-3 asset-pipeline