2016-03-20 14 views
0

私はThin、Rails、Rubyの最新バージョンを実行しています。静的ファイルを提供していないレール

export RAILS_ENV=production 
export RAILS_SERVE_STATIC_FILES=true 
# generate static assets 
RAILS_ENV=production rake assets:precompile 
# restart server 
rails server thin -d 

そして、私のproduction.rbに私が

config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present? 

を持っていると私は、これは正常にコンパイル

<%= stylesheet_link_tag 'application', media: 'all' %> 
<%= javascript_include_tag 'application' %> 

使用して私の見解では、これらのファイルを含める:私のビルドスクリプトの関連する部分はあります私の資産を/ public/assetsフォルダに移動します。ただし、ページを読み込むときにこれらのアセットのいずれも実際には提供されません。生成されたHTMLは、これらのファイル名に含まダイジェストを持っていないので、私は彼らが間違っていると信じて

<link rel="stylesheet" media="all" href="/stylesheets/application.css" /> 
<script src="/javascripts/application.js"></script> 

です。ダイジェストの有無にかかわらずファイル名を手動でロードしようとすると、404で失敗します。私は間違って何をしていますか?

+0

これらのリンクタグは 'public'ではなく' app/assets'ディレクトリを指していませんか? –

+0

私は、ドキュメントが不明であるかどうかはわかりません。 –

答えて

1

app/assets/javascriptの下にjsファイルを配置します。

app/assets/stylesheetsの下にCSSファイルを配置します。

すべてのjsファイルとcssファイルはapplication.html.erbのヘッダーにロードされ、application.cssapplication.jsが読み込まれます。これは、これらの2行のコードが行うことです。私はCDNを使用していないとき

app/assets/javascript 
app/assets/stylesheets 

私は通常は外部ライブラリのためpublicフォルダを使用します。

<%= stylesheet_link_tag 'application', media: 'all' %> 
<%= javascript_include_tag 'application' %> 

これらの2つのファイルは、対応するディレクトリ内のすべてのファイルをロードする行require_tree .あります。そして、それらを明示的にapplication.jsapplication.cssファイルに含める必要があります。

関連する問題