アプリを本番環境に配置しようとしていますが、画像とCSSアセットパスが機能していません。
これが私が現在やっていることです:
- 画像アセットは/app/assets/images/image.jpgにあります
- スタイルシートは/app/assets/stylesheets/style.cssにあります
- 私のレイアウトでは、次のようにcssファイルを参照しています。
<%= stylesheet_link_tag "styles", media: "all", "data-turbolinks-track" => true %>
- ユニコーンを再起動する前に、実行する
RAILS_ENV=production bundle exec rake assets:precompile
と成功し、public/assets
ディレクトリにフィンガープリントされたファイルが表示されます。
私のサイトを閲覧すると、の404 not foundエラーが表示されmysite.com/stylesheets/styles.css
ます。
何が悪いのですか?
更新: 私のレイアウトでは、次のようになります:
<%= stylesheet_link_tag "bootstrap.min", media: "all", "data-turbolinks-track" => true %>
<%= stylesheet_link_tag "styles", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
生成ソースはこれです:
<link data-turbolinks-track="true" href="/stylesheets/bootstrap.min.css" media="all" rel="stylesheet" />
<link data-turbolinks-track="true" href="/stylesheets/styles.css" media="all" rel="stylesheet" />
<script data-turbolinks-track="true" src="/assets/application-0c647c942c6eff10ad92f1f2b0c64efe.js"></script>
Railsがコンパイル済みのcssファイルを適切に検索していないようです。しかし、JavaScriptで正しく機能する理由は非常に混乱してい/assets/****.js
ます(パスに注意してください)。
<%= stylesheet_link_tag "style", media: "all", "data-turbolinks-track" => true %>
public/assets
。2。そのcssファイルをロードしようとしている他の命令がないかどうかをダブルチェックします(おそらくハードコードされています)
.home {background: #FFF url(<%= image_path 'hippopotamus.jpg' %>) no-repeat; }
実際にはスプロケットでと置き換えることができ.home {background: #FFF url(image-path('hippopotamus.jpg')) no-repeat; }
ます。これが役立つ場合は、試してみてください。
stylesheet_link_tag
。