Ruby on rails - 为什么这个新的 CSS 清单文件在 Heroku slug 编译期间没有编译,而正常的应



我有一个在Heroku Cedar堆栈上运行的Rails 3.2.11。我不在本地编译资产,它们是在 slug 编译期间自动编译的,如此处所述。除了默认application.css.scss之外,我刚刚创建了一个新的CSS清单文件app/assets/stylesheets/new_manifest.css.scss。当我推送到 Heroku 时,这个清单文件没有像application.css.scss那样编译。新的清单文件在开发中工作正常。为什么会这样?

应用程序.rb

config.assets.enabled = true
config.assets.version = '1.0'
config.assets.initialize_on_precompile = false

生产.rb

config.assets.compile = false
config.serve_static_assets = false
config.assets.compress = true
config.assets.digest = true

来自 Heroku 推送的控制台输出

-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       Asset precompilation completed (83.62s)

示例页面

<%= stylesheet_link_tag "new_manifest", media: "all" %>

解决方案是将config.assets.precompile += %w( new_manifest.css )添加到 production.rb,如此处所述。这在开发中不是必需的,但在生产中是必需的,这引起了我的困惑。

如果你

说你的new_manifest是一个清单文件,它应该包含在应用程序的主清单中:application.css。如果你通过stylesheet_link_tag它包含在资产管道控制之下(它被视为一个纯CSS文件,而不是一个清单文件)。它也即将被预编译,但包含即将被忽略。有一种更正确的方法可以将额外的清单文件包含在主application.css中:索引文件(查找 2.1.2)。

相关内容

  • 没有找到相关文章

最新更新