3

Heroku Cedar スタックで Rails 3.2.11 を実行しています。ここで説明されているように、アセットはローカルでコンパイルしません。スラッグのコンパイル中に自動的にコンパイルされますapp/assets/stylesheets/new_manifest.css.scssデフォルトに加えて、新しい CSS マニフェスト ファイルを作成しましたapplication.css.scss。Heroku にプッシュすると、このマニフェスト ファイルがコンパイルされませんapplication.css.scss。新しいマニフェスト ファイルは、開発中に正常に動作します。なぜそれが起こっているのでしょうか?

アプリケーション.rb

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

production.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" %>
4

2 に答える 2

6

ここでconfig.assets.precompile += %w( new_manifest.css )説明されているように、解決策は production.rbに追加することでした。これは開発では必要ありませんが、本番環境では必要であり、混乱を招きました。

于 2013-02-01T17:11:34.153 に答える
0

がマニフェスト ファイルであると言う場合new_manifestは、アプリケーションのメイン マニフェストに含める必要がありますapplication.css。アセットパイプラインの制御下にないことによってそれを含める場合stylesheet_link_tag(マニフェストファイルとしてではなく、純粋な CSS ファイルのように扱われます)。これもプリコンパイルされようとしていますが、インクルージョンは無視されようとしています。追加のマニフェスト ファイルを main application.css: index ファイルに含めるより適切な方法があります(2.1.2 を探してください)。

于 2013-02-01T16:46:52.437 に答える