7

我在开发时误跑rake assets:precompile了,Rails 在开发时停止加载资产。我只得到application.jsapplication.css加载。

应用程序.js:

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

应用程序.css:

*= require_self
*= require_tree .

使用 Rails 3.2.2

4

6 回答 6

6

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

rm -rf public/assets

编辑:

config.assets.compress = false此外,请确保config.assets.debug = true在您的development.rb.

于 2013-04-19T16:20:55.443 回答
1

tl;博士

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

现在一切都应该和你跑之前一样rake assets:precompile

-- 结束 tl;博士 --

如果上述方法不起作用,那么详细的步骤列表:

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

这应该解决它。

于 2013-04-25T07:43:34.507 回答
0

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

config.assets.enabled = true

于 2013-04-19T21:20:54.047 回答
0

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

  1. 手动删除这些文件或
  2. rake assets:clean
于 2013-04-19T16:20:47.173 回答
0

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

如果生成的页面带有src指向已编译文件的标签,则现在需要重新生成它们。

于 2013-04-19T21:31:19.917 回答
0

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

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

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

于 2014-06-05T11:47:24.440 回答