0

Rails アセット パイプラインを使用するベスト プラクティスについては、まだよくわかりません。Rails スケルトン プロジェクトでは、application.html.erb に次のようなコードが含まれています。

<head>
  <title>My title</title>
  <%= stylesheet_link_tag "scaffolds" %>
  <%= stylesheet_link_tag "depot", media: "all"  %>
  <%= stylesheet_link_tag "application", media: "all" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
</head>

現在開発中ですが、すべての js と css が適切に提供されます。しかし本番環境では、すべてのアセット (js と css) をプリコンパイルした後、必要なのは application.css と application.js のみです。そのため、scaffolds.css と depot.css は本番環境では不要になりました。

上記のコードを開発してから本番環境に配置し、特定のアセットが application.css/js に連結されていることをアセット パイプラインに認識させ、コード内のアセット リンク タグを削除するにはどうすればよいですか?

これが不可能な場合、冗長なリソースのロードを回避し、製品のデプロイを管理しやすくするにはどうすればよいですか? (本番環境で link_tag を手動で削除しないことを意味します)

ありがとう。

4

1 に答える 1

2

あなたは入れません

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

あなたのレイアウトファイルで。あなたは置くだけ

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

そして、config/environment/development.rbあなたが持っていることを確認してください

config.assets.debug = true

config.assets.debugが に設定されている場合、ファイルの Sprockets ディレクティブ で必要な各アセットの開発モードで、各スタイルシートのタグtrueが自動的に生成されます。<link ... />application.css

はデフォルトで、アセットが 1 つのファイルに連結されconfig/environment/production.rb config.assets.debugます(ここでも、行が で正しいと仮定します)。これにより、本番用にのみ1 つ のリンク タグが作成されます。falseapplication.css//= requireapplication.cssapplication.css

于 2012-07-25T03:27:16.580 に答える