3

私のアプリケーションは、haml と scss のコンパスと sussy を使用して開発環境で正常に動作しており、アプリケーションの Gemfile 構成は -: Gemfile の Gist です。

私のapplication.rb設定は次のようになります-:

if defined?(Sass)
 config.sass.load_paths << "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/compass/stylesheets"
 config.sass.load_paths << "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/blueprint/stylesheets" 
 config.sass.load_paths << "#{Gem.loaded_specs['compass-susy-plugin'].full_gem_path}/sass"
end
 config.assets.precompile << /(^[^_]|\/[^_])[^\/]*/

しかし、アプリケーションをサーバーにデプロイするとき。ステージング環境にあります。常にエラーがスローされます-:

Error compiling asset application.css:
    Sass::SyntaxError: Undefined variable: "$base-font-size".
    (in /var/www/App-staging/releases/20120405100127/app/assets/stylesheets/_mobile-first.scss)
    Served asset /application.css - 500 Internal Server Error

そして、提供されたいくつかのハックとパッチを試すと、エラーが発生します-:

Compiled application.css  
Completed 500 Internal Server Error in 419ms

ActionView::Template::Error (File to import not found or unreadable: compass/css3/.
Load path: Sass::Rails::Importer

これは Compass と Rails のバージョンの問題でしょうか? Ansは、これを取り除くための恒久的な解決策、またはステージングおよび本番環境の作業構成があります。手伝ってくれてありがとう。

4

2 に答える 2

1

を使用して SASS ファイルをインポートしていることを確認してください。

"import _mobile-first";

さらに、Rails 3.1 では、正しいファイル名は次のようになります。

mobile_first.css.erb.scss

注: 先頭のアンダースコアは必要ありません。

これにより、アセット パス ヘルパーを使用してアセットを挿入するために erb を使用しながら、scss インポートを使用してファイルをインポートできます。

<%= asset_path 'twitter.png' %>

古いバージョンのコンパス gem を使用しています。0.12.1 にアップグレードします。

それでもうまくいかない場合は、これらの行を application.rb から削除してみてください。

if defined?(Sass)
 config.sass.load_paths << "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/compass/stylesheets"
 config.sass.load_paths << "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/blueprint/stylesheets" 
 config.sass.load_paths << "#{Gem.loaded_specs['compass-susy-plugin'].full_gem_path}/sass"
end

それらは必要ありません。それらがなくても、アプリは正常に動作します。これらの行を application.rb に追加する必要はありませんでした

それでもうまくいかない場合は、次の行も削除して試してください。

 config.assets.precompile << /(^[^_]|\/[^_])[^\/]*/

それでもダメならapplication.scssだけでなくmobile_first.scssの内容も載せていただけませんか?

于 2012-04-15T18:28:03.017 に答える
0

デプロイ スクリプトが assets:precompile を呼び出しており、RAILS_ENV が次のようにステージングに設定されていることを確認してください。

bundle exec rake assets:precompile RAILS_ENV=staging

開発マシンで上記のコマンドを実行できますか?

于 2012-04-14T20:37:01.057 に答える