2011-10-24 7 views
5

CSSとイメージを展開した後にプロジェクトをサーバーに配備しています - 動作しますが、JSは機能しません - 404 HTMLとpublic /資産 - 不一致。生産現場のJSファイルのRails 3.1アセットパイプラインの指紋が間違っている

In HTML: application-6851a5d9167871936c32da723dca0f23.js 
In public/assets: application-95ecf5bab4b7984abe8c1c23b72a7679.js 
+2

あなたは(直接それを編集して)あなたの質問にいくつかの情報を追加することができます。HTML手段は何?あなたのソースコードでRailsによって生成されたURLを意味しますか?私はそれが開発で動作すると思われる。あなたは資産を得るために何をしましたか? 'rake assets:precompile'?設定で何か変更しましたか?それは新しいレールアプリケーションか移行されたものですか? – mliebelt

+0

はい、私はソースコードでRailsによって生成されたURLを意味します。はい、開発では動作しますが、実動では動作しません。レーキ資産を使って資産を取得します:プリコンパイル。その新しいレールアプリ –

+0

私は自分のアプリケーションでチェックしたところ、ハッシュはHTMLコードとファイルパスで同じです。ファイルごとに指紋を含む 'manifest.yml'を確認しましたか?実稼働環境ではどのサーバーを使用しますか? – mliebelt

答えて

0

'rake assets:clean assets:precompile'を実行しましたか?

また、GITを使用している場合は、古いバージョンのアセットも「git rm」する必要があります。作業環境(例えばHeroku)を押してプロダクション環境を更新する場合、他のバージョン管理システムと同様の作業を行う必要があります。

あなたの開発環境では、資産はソースベースから直接フェッチされるため、変更した場合、再度プリコンパイルする必要はありません(開発中に時間を節約できます)。しかし、そのために資産をかなり簡単に見つけ出すことができます。

0

アプリを再起動すると、私のために修正されました。

など。アプリケーションのルートディレクトリに:

touch tmp/restart.txt 

またはカピストラーノ3のdeploy.rb中:

namespace :deploy do 
    desc 'Restart application' 
    task :restart do 
    on roles(:app) do 
     within release_path do 
     execute :touch, 'tmp/restart.txt' 
     end 
    end 
    end 

    after 'deploy:publishing', 'deploy:restart' 
end 
関連する問題