2

Heroku の Cedar スタックで新しい Ruby on Rails アプリを実行しています。アプリはローカルでうまく機能します。ただし、Web サイトにログインしようとすると、次のエラーが表示されます。

Error compiling CSS asset

Sprockets::FileNotFound: couldn't find the file 'reset.scss'
  (in app/app/assets/stylesheets/application.css:4)

私のファイル application.css は次のようになります。

/**
 *= require_self
 *= require reset.scss
 *= require_tree .
*/

そして、ディレクトリ assets/stylesheets にファイルがあります

application.css
reset.scss
dialog.scss
etc

アイデアは、application.css ですべての css アセットをまとめてコンパイルし、reset.scss ファイルを先頭に表示することです。

これは Heroku のバグですか? ローカルでは完全に機能するのに、Heroku では機能しないのはなぜですか?

4

2 に答える 2

0

次のことを試してください

  • application.cssがレイアウト ファイルに含まれていることを確認します。そうでない場合は、次の css リンク タグを追加します。

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

  • (純粋な css の場合) または (scss マークアップが含まれている場合) のreset.scssいずれかに名前を変更します。reset.cssreset.css.scss

  • あなたのapplication.cssでは、 によって単に要求することができます*= require reset。Rails の規則に従って、アセットのファイル拡張子はスキップされます。

  • require_tree各ファイルを明示的に削除して要求する

最後に、それでもうまくいかない場合。回避策として、アセットのランタイム コンパイルを有効にすることができます/config/environment/production.rb。遅くなるのは、そのアセットが最初にヒットしてコンパイルされたときだけです。初期コンパイル後のリクエストは通常​​の速度である必要があります。

于 2012-06-12T07:29:15.263 に答える
0

もう 1 つのオプションは、' rake assets:precompile ' を使用してアセットをローカルでコンパイルし、それらをプロジェクト リポジトリに追加することです。

于 2012-06-12T09:05:52.883 に答える