3

開発中のすべてのアセットを問題なくロードするRailsアプリがあります。

<link rel="stylesheet" href="/assets/reset.css" type="text/css" media="screen" title="no title" />
<link rel="stylesheet" href="/assets/text.css" type="text/css" media="screen" title="no title" />
<link rel="stylesheet" href="/assets/buttons.css" type="text/css" media="screen" title="no title" />
<link rel="stylesheet" href="/assets/theme-default.css" type="text/css" media="screen" title="no title" />
<link rel="stylesheet" href="/assets/login.css" type="text/css" media="screen" title="no title" />
<link rel="stylesheet" href="/assets/notify.css" type="text/css" media="screen" title="no title" />

一方、運用サーバーでは、上記のコードを使用して CSS をロードしています。代わりに /assets/applicaiton.css ファイルを使用するべきではありませんか? rake assets:precompile タスクを本番環境で手動で実行したところ、必要なファイルが /public/assets フォルダーに作成されていることがわかります。

では、Rails に圧縮ファイルを使用するように指示するには、どうすればよいでしょうか?

私の production.rb は次のようになります:-

  # Disable Rails's static asset server (Apache or nginx will already do this)
  config.serve_static_assets = true

 # Compress JavaScripts and CSS
 config.assets.compress = true

 # Don't fallback to assets pipeline if a precompiled asset is missed
 config.assets.compile = false

 # Generate digests for assets URLs
 config.assets.digest = true
4

1 に答える 1

2

次のように、stylesheet_link_tag ヘルパーを使用して css ファイルを呼び出す必要があります。

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

次のように、アプリケーションのスタイルシート ファイル内にスタイルシートを挿入します。

= require reset
= require text
= require button
...

次に production.rb ファイルを変更して、config.assets.compile を true に設定します。

 # Disable Rails's static asset server (Apache or nginx will already do this)
 config.serve_static_assets = true

 # Compress JavaScripts and CSS
 config.assets.compress = true

 # Don't fallback to assets pipeline if a precompiled asset is missed
 config.assets.compile = true

 # Generate digests for assets URLs
 config.assets.digest = true

「働けばいい」

于 2012-11-22T15:35:58.933 に答える