2095


Railsで使用してるRubyのバージョンを`2.0.0`から`2.1.5`にアップデートした時からdeploy時に`assets`が読み込まれないエラーが起きるようになってしまいました。

アセットのプリコンパイルが正常に動かいて無いかと疑い サーバーにログインし一度
`${APP_DIR}/public/assets/assets-*`を削除し、

`RAILS_ENV=production ./bin/rake
assets:precompile`で`application-80d9a9c586007ba0c9f85e11beee1b41.css`のようにコンパイルされたアセットが生成されるのは確認したのですが、`stylesheet_link_tag`で正常に参照されないらしくサイトのソースにて確認すると

[code]

    <link href="/assets/application-d220bb0a13b51cdccc9467ae62215336.css" media="all" rel="stylesheet">
    
[/code]

と、別の存在しないリンク先をさしてしまっています。

`javascript_include_tag`も同様に正常に参照できていません。

上記のように `stylesheet_link_tag`
が生成されたファイルへのリンクを正常に生成できない時の原因としてはどのようなものが考えられるのでしょうか？


CC BY-SA 3.0
2014-12-19T03:33:44.767
2088
2014-12-19T04:37:54.717
3271
question
ruby ruby-on-rails
stylesheet_link_tag が precompile された assets を参照してくれない時の対処法


CapistranoからUnicornを制御するタスクとして[ここのコード](http://qiita.com/satococoa/items/9b0cc416ffc042680b9b)を流用して使っているのですが、
`unicorn:restart`だと unicornが再起動せず `unicorn:stop`
`unicorn:start`すると正常にリンクが参照させるようになりました。

以下に該当部分のコードを転載しておきます。

[code]

    namespace :unicorn do
      task :environment do
        set :unicorn_pid, "#{shared_path}/tmp/pids/unicorn.pid"
        set :unicorn_config, "#{current_path}/config/unicorn/#{fetch(:rails_env)}.rb"
      end
    
      def start_unicorn
        within current_path do
          execute :bundle, :exec, :unicorn, "-c #{fetch(:unicorn_config)} -E #{fetch(:rails_env)} -D"
        end
      end
    
      def stop_unicorn
        execute :kill, "-s QUIT $(< #{fetch(:unicorn_pid)})"
      end
    
      def reload_unicorn
        execute :kill, "-s USR2 $(< #{fetch(:unicorn_pid)})"
      end
    
      #...
    
      desc "Start unicorn server"
      task :start => :environment do
        on roles(:app) do
          start_unicorn
        end
      end
    
      desc "Stop unicorn server gracefully"
      task :stop => :environment do
        on roles(:app) do
          stop_unicorn
        end
      end
    
      desc "Restart unicorn server gracefully"
      task :restart => :environment do
        on roles(:app) do
          if test("[ -f #{fetch(:unicorn_pid)} ]")
            reload_unicorn
          else
            start_unicorn
          end
        end
      end
      # ...
    end
    
[/code]


CC BY-SA 3.0
2014-12-19T04:37:54.717
2095
2014-12-19T04:37:54.717
3271
2088
answer