1

アプリケーションに会社のテーマ固有のスタイルシートがいくつかあり、ログインしているユーザーに基づいて特定のスタイルシートが読み込まれます。これは、「application.html.erb」に次のようなアプリケーション ファイルの特定のバージョンをロードすることによって行われます。

<% if current_user %>
    <% stylesheet_link_tag "application_" + current_user.company.code.downcase %>   
<% else %>
    <%= stylesheet_link_tag "application" %>
<% end %>

これはローカルでは正常に動作しますが、本番環境では (「rake assets:precompile」の後)、元の「application.css.scss」のみがコンパイルされ、「application_sal.css」などの他のものはコンパイルされないように見えるため、動作しません。 .scss'. ここで何が間違っていますか?

そして、これは行くべき道ですか?ユーザーがログインすると、会社固有のスタイルシートを含む特定のアプリケーション ファイルが読み込まれます。

@import "_variables.css.scss";
@import "_mixins.css.scss";
@import "_reset.css.scss";
@import "_layout.css.scss";
@import "_skeleton.css.scss";

@import "_theme_sal.css.scss";

@import "_form.css.scss";
@import "base.css.scss";
@import "print.css.scss";
@import "_modules.css.scss";

ユーザーがログインしていない場合、デフォルトのアプリケーション ファイルが読み込まれます。

@import "_variables.css.scss";
@import "_mixins.css.scss";
@import "_reset.css.scss";
@import "_layout.css.scss";
@import "_skeleton.css.scss";
@import "_form.css.scss";
@import "base.css.scss";
@import "print.css.scss";
@import "_modules.css.scss";

これを行うより良い方法はありますか?ありがとう!

4

1 に答える 1

2

のプリコンパイル構成項目を更新してみてくださいenvironments/production.rb。は自動的にプリコンパイルされますが、このapplication.css構成項目がなければ、他のものはありません。

# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
config.assets.precompile += %w( search.css )

会社固有の css マニフェスト ファイルをそれぞれ配列に配置するだけです。

この構成項目はproduction.rb、実行した Rails のバージョンによっては、既にコメント アウトされている場合がありますrails new

于 2012-05-10T13:41:57.353 に答える