Fen*_*lon 36 ruby-on-rails asset-pipeline
我遇到了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>
Run Code Online (Sandbox Code Playgroud)
Rails以某种方式编译并包含application.js,因此所有脚本都包含两次 - 作为单个文件和application.js
生产中的预编译资产一切都很好.
development.rb
config.assets.compress = false
config.assets.debug = true
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
application.rb中
config.assets.enabled = true
Run Code Online (Sandbox Code Playgroud)
Eth*_*hen 39
尝试将以下内容添加到development.rb:
config.serve_static_assets = false
Run Code Online (Sandbox Code Playgroud)
...然后清除浏览器缓存(根据评论更新)
静态资产是指公共/资产中的预编译资产,这是rake assets:precompile放置它们的地方.
发生的事情是公共/资产中存在的任何内容都会覆盖app/assets中的任何内容.因此,当js标签打算识别app/assets/application.js时,正在加载public/assets/application.js.
这只是给我带来了一个问题.设置以下内容使应用程序工作,但包括单个application.js文件 - 我不想在开发中:
config.serve_static_assets = false
Run Code Online (Sandbox Code Playgroud)
我以前预先编译了我的资产(似乎是原因).
要修复它,我做了以下事情:
RAILS_ENV=development rake assets:clean以清除tmp/assets只有在我编辑了application.js之后才会出错,然后纠正它,包含在页面中的applciation.js不是完整的,预编译的application.js.
我不确定是否所有这些都需要完成.我也在沿途重新启动我的服务器.
| 归档时间: |
|
| 查看次数: |
14108 次 |
| 最近记录: |