Rails 1.9.3 アプリケーションを実稼働の Windows 2008 R2s サーバーにデプロイしました。[クライアントは IIS を要求します :-(]. Helicon Zoo を使用しており、IIS マネージャーでサイトをセットアップし、アプリを既定のディレクトリにコピーして、次のコマンドを実行しました。
- バンドル インストール
- bundle exec rake assets:precompile
- rake db:setup RAILS_ENV="プロダクション"
ローカルでもリモートでも接続できますが、2 つの問題があります。
1) CSS スタイル シートは利用できず、ページの形式は (驚くことではありませんが) がらくたです。ログには次のように表示されます。
Started GET "/assets/application-af54c6f2f95c6c2f7d965706cab068f3.css" for 10.10.100.185 at 2013-09-16 17:02:27 -0400
ActionController::RoutingError (No route matches [GET] "/assets/application-af54c6f2f95c6c2f7d965706cab068f3.css"):
actionpack (3.2.13) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
actionpack (3.2.13) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
...
ただし、public/assets ディレクトリに「application-af54c6f2f95c6c2f7d965706cab068f3.css」という名前のファイルがあります。何を与える?
2) 開発で機能するルーティングと、本番環境での WEBrick の中断。次に例を示します。
ビュー コード: <%= link_to 'Logout', logout_path, method: :delete %>
ルートコード:
controller :sessions do
get 'login' => :new
post 'login' => :create
delete 'logout' => :destroy
post 'logout' => :create
end
ログ:
Started GET "/logout" for 10.10.100.185 at 2013-09-16 17:04:20 -0400
ActionController::RoutingError (No route matches [GET] "/logout"):
actionpack (3.2.13) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
actionpack (3.2.13) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
...
コントローラが "method: :delete" を示しているのに [Get] するのはなぜですか? 開発では機能するのに、製品では機能しないのはなぜですか?