Rails不会加载资产管道

我运行了rake assets:precompile在开发时错误地rake assets:precompile ,并且Rails在开发时停止加载资产。 我只加载了application.jsapplication.css

application.js中:

 //= require jquery //= require jquery_ujs //= require_tree . 

application.css:

 *= require_self *= require_tree . 

使用Rails 3.2.2

尝试从本地开发环境中删除已编译的资产:

rm -rf public/assets

编辑:

此外,请确保在development.rb设置config.assets.compress = falseconfig.assets.debug = true

TL;博士

  1. $ rake assets:clean
  2. 重启rails服务器$ rails server -e development
  3. 清除浏览器缓存,或在应用页面上执行ctrl+shift+r

现在一切都应该像你运行rake assets:precompile之前一样rake assets:precompile

– 结束tl;博士 –

如果上述方法无效,则详细步骤列表如下:

  1. 执行$ rake assets:clean$ rm -rf public/assets以删除生成的资产。
  2. 在application.rb中,确保:
    • config.assets.enabled = true (启用rails的资产pipleline)
  3. 在development.rb中,确保:
    • config.assets.compress = false (以免gzip资产)
    • config.assets.debug = true (以便不将所有css和js文件合并到应用程序中。[cs | js])
    • config.assets.compile = true (或未设置 – 启用资产的运行时编译)
    • config.serve_static_assets = false (或未设置)
  4. 最后,重启rails服务器$ rails server -e development

这应该解决它。

运行rake assets:precompilepublic/assets下生成静态资产,这会导致Rails直接为这些public/assets提供服务。 为防止这种情况,您可以:

  1. 手动删除这些文件或
  2. 运行rake assets:clean

打开config/application.rb并设置以下内容:

config.assets.enabled = true

如果清理资产目录并确保配置正确(如前面的答案所示)不起作用 – 您是否有可能使用页面缓存?

如果页面是使用指向已编译文件的src标记生成的,则需要立即重新生成它们。

如果它对任何人都有帮助 – 我遇到了一个问题,即开发中没有application.js / .css加载(在查看源代码时我仍然可以看到清单行)。

我运行了一个旧的rails 3.2.2应用程序由于某种原因我必须进入并为清单文件(application.js和application.css)添加空行并保存它们 – 然后资产开始正常工作。

我删除了空行,它仍然有效,所以我假设它可能只是需要在文件上更新的修改日期戳。