アセットパイプラインパスにフォルダーを追加しますか? 質問する

アセットパイプラインパスにフォルダーを追加しますか? 質問する

最近 Rails 3.0 から Rails 3.2 にアップデートした Rails アプリがあります。このアプリは複数のクライアントにサービスを提供します。各クライアント向けにカスタマイズするために、ディレクトリ がありますapp/themes。 にはサブモジュールがあります。各サブモジュールにはlocales/en.ymlviews/layoutsviews/controller_name、 などが含まれます。 を使用してprepend_view_pathテーマ ビューを追加し、 をI18n.load_path使用してロケールを追加します。アセット パイプラインを使用して、さまざまなクライアント マテリアルをパブリック ディレクトリから切り離し、各テーマ内に保持することを検討しています。

Rails に、必要な theme/theme-name/assets フォルダを読み込むように動的に指示する方法はありますか? 設定ロジックを使用して、どのテーマをアクティブにするかを設定します。したがって、テーマを「google」に設定した場合、次のApplicationControllerパスからファイルが読み込まれます。

app/themes/google/locales/*.yml
app/themes/google/views

私がやりたいのは、マニフェストファイルを用意することです。

app/themes/google/assets/stylesheets/application.css

ファイルの場合と同じように、レイアウトに簡単にアクセスできますapp/views/layouts

= stylesheet_link_tag "application"

これを実行する方法はありますか? または、アセットを実際のアセット ディレクトリに手動で移動する必要がありますか?

ベストアンサー1

application.rb で実行できました:

require "#{Rails.root}/app/models/settings.rb"
config.assets.paths << "#{Rails.root}/app/themes/#{Settings.theme}/assets/stylesheets"
config.assets.paths << "#{Rails.root}/app/themes/#{Settings.theme}/assets/images"
config.assets.paths << "#{Rails.root}/app/themes/#{Settings.theme}/assets/javascripts"

おすすめ記事