Ruby on Rails 4 でサイトを開発していますが、一部の CSS ファイルへのパスに問題があります。
applicaiton.sass
ファイルに含まれていない次のアセットがあります。
- mobile.scss
- mozilla.scss
- msie.scss
- オペラ.scss
- webkit.scss
application.rb
以下を使用してプリコンパイルするようにそれらを含めました。
config.assets.precompile += [
'mobile.css',
'mozilla.css',
'msie.css',
'opera.css',
'webkit.css'
]
実稼働サーバーで次のコマンドを実行しました (注:touch
サーバーとして Nginx で Phusion Passenger を使用しているため、コマンドはアプリが再起動してキャッシュをクリアすることを確認するためのものです)。
rake assets:precompile RAILS_ENV=production
touch tmp/restart.txt
public/assets/
上記のコマンドを実行した後、アセットがプリコンパイルされ、ディレクトリに存在することに気付きました。それらはmanifest.json
、ディレクトリ内のファイルにも正しくリストされていますpublic/assets/
。
ブラウザにサイトをロードしてソース コードを確認すると、ブラウザ固有の CSS ファイルが正しいアセット パスを使用していないことに気付きました。それが示している:
<link href="/assets/application-ec1031f251a585c79d4404ef2899f6d1.css" media="screen" rel="stylesheet" />
<link href="/stylesheets/webkit.css" media="screen" rel="stylesheet" />
私が見ることを期待している間:
<link href="/assets/application-ec1031f251a585c79d4404ef2899f6d1.css" media="screen" rel="stylesheet" />
<link href="/assets/webkit-70899fec75bb8eae24edae491a94f73a.css" media="screen" rel="stylesheet" />
私のビューは次のコードを使用しています。
<% if @mobile %>
<%= stylesheet_link_tag :mobile %>
<% else %>
<%= stylesheet_link_tag :application %>
<%= stylesheet_link_tag :msie if @browser == 'Internet Explorer' %>
<%= stylesheet_link_tag :opera if @browser == 'Opera' %>
<%= stylesheet_link_tag :mozilla if @browser == 'Mozilla' %>
<%= stylesheet_link_tag :webkit if @browser == 'Webkit' %>
<% end %>
私の質問は、webkit.css
パスが正しく出力されるべきではないか、それとも何か不足していますか? どんな助けでも大歓迎です。