【发布时间】:2012-01-11 11:28:08
【问题描述】:
我在使用 Rails 3.1 资产管道时遇到了问题。 资产在开发中包含两次:
<script src="/assets/main_new.js?body=1" type="text/javascript"></script>
<script src="/assets/pagenav.js?body=1" type="text/javascript"></script>
<script src="/assets/tours.controller.js?body=1" type="text/javascript"></script>
<script src="/assets/tours.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
Rails 以某种方式编译并包含 application.js,因此所有脚本都包含两次 - 作为单个文件并在 application.js
生产环境中的预编译资产一切正常。
development.rb
config.assets.compress = false
config.assets.debug = true
production.rb
# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false
# Compress both stylesheets and JavaScripts
config.assets.compress = true
config.assets.js_compressor = :uglifier
config.assets.css_compressor = :scss
config.assets.compile = false
config.assets.digest = true
application.rb
config.assets.enabled = true
【问题讨论】:
-
试试
rake assets:clean。 development 可能仍然为 application.js 提供服务,但它不应该包含所有其他 js 文件。 -
删除
public/assets中的资产后不要忘记清除浏览器缓存。
标签: ruby-on-rails asset-pipeline