我在开发时误跑rake assets:precompile
了,Rails 在开发时停止加载资产。我只得到application.js
并application.css
加载。
应用程序.js:
//= require jquery
//= require jquery_ujs
//= require_tree .
应用程序.css:
*= require_self
*= require_tree .
使用 Rails 3.2.2
我在开发时误跑rake assets:precompile
了,Rails 在开发时停止加载资产。我只得到application.js
并application.css
加载。
应用程序.js:
//= require jquery
//= require jquery_ujs
//= require_tree .
应用程序.css:
*= require_self
*= require_tree .
使用 Rails 3.2.2
尝试从本地开发环境中删除已编译的资产:
rm -rf public/assets
编辑:
config.assets.compress = false
此外,请确保config.assets.debug = true
在您的development.rb
.
tl;博士
$ rake assets:clean
$ rails server -e development
ctrl+shift+r
在应用页面上执行现在一切都应该和你跑之前一样rake assets:precompile
-- 结束 tl;博士 --
如果上述方法不起作用,那么详细的步骤列表:
$ rake assets:clean
或$ rm -rf public/assets
删除生成的资产。config.assets.enabled = true
(启用 Rails 的资产管道)config.assets.compress = false
(以免压缩资产)config.assets.debug = true
(以免将所有 css 和 js 文件合并到应用程序中。[cs|js])config.assets.compile = true
(或未设置 - 启用资产的运行时编译)config.serve_static_assets = false
(或未设置)$ rails server -e development
这应该解决它。
打开config/application.rb
并设置以下内容:
config.assets.enabled = true
运行会rake assets:precompile
生成静态资源,在这些资源下public/assets
,Rails 会直接为这些资源提供服务。为了防止这种情况,您可以:
rake assets:clean
如果清理您的资产目录并确保您的配置正确,如前面的答案所示不起作用 - 您是否有可能使用页面缓存?
如果生成的页面带有src
指向已编译文件的标签,则现在需要重新生成它们。
万一这对任何人都有帮助-我遇到了一个问题,即在开发中都没有加载 application.js/.css (查看源代码时我仍然可以看到清单行)。
由于某种原因,我正在运行一个旧的 rails 3.2.2 应用程序,我不得不进入并在清单文件(application.js 和 application.css)中添加空白行并保存它们 - 然后资产开始正常工作。
我删除了空白行,它仍然有效,所以我假设它可能只是需要在文件上更新修改的日期戳。