2016-09-28 11 views
4

私は実稼働環境に配備しようとしているRuby on Webサーバを持っています。本番環境で資産をロードするのに問題があります:.css、.js、およびimages(開発中に問題なく動作するようです)ここで Rails 4.1.6資産パイプラインが資産内に資産やjavascriptをロードしていない

は、私はこの同じサーバーのデプロイされたバージョンを持っていた

Rails.application.configure do 

    # Code is not reloaded between requests. 
    config.cache_classes = true 

    # Eager load code on boot. This eager loads most of Rails and 
    # your application in memory, allowing both threaded web servers 
    # and those relying on copy on write to perform better. 
    # Rake tasks automatically ignore this option for performance. 
    config.eager_load = true 

    # Full error reports are disabled and caching is turned on. 
    config.consider_all_requests_local  = false 
    config.action_controller.perform_caching = true 

    config.serve_static_files = true 

    # Compress JavaScripts and CSS. 
    config.assets.js_compressor = :uglifier 

    # Do not fallback to assets pipeline if a precompiled asset is missed. 
    config.assets.compile = false 

    # Generate digests for assets URLs. 
    config.assets.digest = true 
end 

私production.rbであり、そのタグがapplication.html.erbでこのように見えた:

生産の
<head> 
    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> 
    <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 
    <%= csrf_meta_tags %> 
</head> 

(読み込まれたCSS/js)

<link data-turbolinks-track="true" href="/assets/application-06ed3643d0bf74fdf192f533cc269506.css" media="all" rel="stylesheet" /> 
<script data-turbolinks-track="true" src="/assets/application-f134ff018deb0477bd5ad046d853559d.js"></script> 

私のアプリケーションが今すぐ配備されると、指紋を出す)。プリコンパイルが機能していないようです。パブリック/アセットに生成されるファイルはありませんが、これは問題です。現在、私のアプリケーションマニフェストは、私は、資産パイプラインに関しておよびプリコンパイル資産の間違って何かがあると信じて、この

<link data-turbolinks-track="true" href="/stylesheets/application.css" media="all" rel="stylesheet" /> 
<script data-turbolinks-track="true" src="/javascripts/application.js"></script> 

のように見えます。それは、cssとjsの指紋バージョンを生成して使用する必要があります。 rakeアセットを実行していても、私のプロダクションサーバでプリコンパイルが動作しません。指紋バージョンを使用するにはどうすればよいですか?私は生産にコンパイルしたくないとして、これは大幅にパフォーマンスが遅くなりますと信じて

config.assets.compile = true 


Rails.application.config.assets.precompile << /(^[^_\/]|\/[^_])[^\/]*$/ 

:私はそれは、これらの設定を変更することで、仕事を得ることができた特定の設定で遊んで

。私はこの問題を解決する方法を修正する必要があります。どんな助けでも大歓迎です!

注:私も、私は/資産/ JavaScriptのapplication.jsを持っていますが、私は/資産/スタイルシートapplication.css.scssを持っていることに気づいた - これはそれを

答えて

0

に影響を与えるかどうかわからないので、それは簡単な解決策であることが判明しました。私は生産にプッシュするドッキングウィンドウを使用して、私のDockerfile

RUN rake assets:precompile 

これは資産をプリコンパイルして、彼らが生産に提供することができますので、指紋を追加するには、この行を追加するために必要でした。乾杯!