Rails 3.1资产-开发中的奇怪服务
-
27-10-2019 - |
题
我遇到了Rails 3.1资产管道的问题。 资产在开发中包含两次: 通用标签
通过某种方式编译并包含 application.js ,因此所有脚本都包含两次-作为单个文件并包含在 application.js 中
使用预编译的生产设备,一切都很好。
development.rb 通用标签
production.rb 通用标签
application.rb 通用标签
解决方案
尝试将以下内容添加到development.rb: 通用标签
...,然后清除浏览器缓存(基于注释进行更新)
静态资产是指公共/资产中的预编译资产,这是rake assets:precompile
放置它们的地方。
正在发生的事情是,如果您提供公共/资产中存在的任何内容,它们将覆盖应用/资产中的所有内容。因此,当js标签打算识别app / assets / application.js时,将加载public / assets / application.js。
其他提示
一旦摆脱/ public / assets,还必须清除浏览器缓存。
这只是给我带来了一个问题。设置以下内容可使该应用程序正常工作,但包括单个application.js文件-我在开发中不希望使用该文件: 通用标签
我以前已经对资产进行了预编译(可能是原因)。
要解决此问题,我执行了以下操作:
- 删除先前的预编译添加的public / assets目录。
- 运行
RAILS_ENV=development rake assets:clean
清除tmp /资产 - 编辑的app / assets / application.js
直到我编辑了application.js之后,它才出现错误,然后对其进行了更正,发现页面中包含的applciation.js不是完整的,预编译的application.js。
我不确定是否需要完成所有这些操作。我也一直在重新启动服务器。
被这件事绊倒了(再次),-不要忘记在您的//= require
末尾的所有application.js
指令后添加空白行!
我用更少的文件添加了相同的问题。
来自文档:
在开发模式下,资产按顺序作为单独的文件提供 它们是在清单文件中指定的。
我的解决方案是从
*= require_tree .
中删除行application.css.less
,只使用少部分的@import "my-styles";
。也许您可以使用javascript找到类似的解决方案...