【问题标题】:Why does rails precompile task do non-digest assets为什么rails预编译任务做非消化资产
【发布时间】:2012-06-13 01:20:35
【问题描述】:

当我这样做时: rake assets:预编译 RAILS_ENV=production 例如,我的 public/assets 文件夹中有以下文件:

  • application-7af6c31514bcdd4cce3c96892af4487f.js
  • application-7af6c31514bcdd4cce3c96892af4487f.js.gz
  • application.js
  • application.js.gz

最后两个是一个问题,因为它会导致编译版本在开发中得到服务,我不明白为什么会生成它们。

我的 production.rb 中有以下行:

config.assets.digest = true

【问题讨论】:

  • 我想我遇到了同样的问题。在我的开发环境中,资产:预编译后javascript被破坏了,但在生产中它工作正常。仍然不知道如何解决,我已经删除了公共文件夹中的所有文件。

标签: ruby-on-rails ruby ruby-on-rails-3 asset-pipeline


【解决方案1】:

停止在公共使用中创建非散列文件名:

rake assets:precompile:primary RAILS_ENV=production

【讨论】:

【解决方案2】:

这是资产编译器的正常行为,生成的非摘要文件主要用于错误页面等(您无权访问MD5哈希)并且目前没有办法转他们关闭。此外,这个问题实际上与这个问题相同:Rails compiles assets both with and without md5 hash, why?

【讨论】:

  • 我读了那篇文章,似乎@NudeCanalTroll 找到了一种关闭它的方法,但不知道他是如何做到的,但希望他没有做到。 叹息
  • 我只是删除我编译的资产并且在我需要在生产模式下测试和/或准备部署之前不重新生成它们。在我看来,问题不在于这些文件的存在,而是 Rails 在开发模式下运行时更喜欢它们而不是 app/assets 中的原始文件。
猜你喜欢
  • 1970-01-01
  • 2012-05-14
  • 2012-05-20
  • 1970-01-01
  • 2021-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-27
相关资源
最近更新 更多