升级到rails 3.1后,我在资产管道中预编译了我的文件(后来改为3.2) 现在(在开发模式下工作)我必须在每次更改后重新编译它们才能看到它们出现。由于这需要大约一分钟,因此开发几乎是不可能的。
我在config/development.rb
config.cache_classes = false
# Show full error reports and disable caching
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
# Do not compress assets
config.assets.compress = false
config.assets.compile = true
# Expands the lines which load the assets
config.assets.debug = true
# Raise exception on mass assignment protection for Active Record models
config.active_record.mass_assignment_sanitizer = :strict
# Log the query plan for queries taking more than this (works
# with SQLite, MySQL, and PostgreSQL)
config.active_record.auto_explain_threshold_in_seconds = 0.3
# configuration option config.assets.logger to control Sprockets logging
config.assets.logger = nil
有什么问题?我怎样才能看到我在application.js
和其他人突然发生的变化?
答案 0 :(得分:3)
必须手动执行
$ bundle exec rake assets:clean
将删除[app]/public/assets/
中的所有文件。 (注意其他文件,属于模型(如用户图片),它们也会被删除!)。
当文件不存在时,使用原始文件。因此,开发模式似乎不需要预编译资产。
感谢@shingara在他对该问题的评论中提示。
答案 1 :(得分:0)
可能是一个因素,如果以下指令在config / application.rb中:
config.assets.precompile += [ 'asset-file', ... ]
这应该仅限于“固定”资产文件,或者移至config / environments / production.rb。
不确定您的情况是否会发生这种情况,但是在编辑资产文件后会产生类似的结果。不预编译资产将使您无需在开发中的每次迭代中编译它们。