1

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] するのはなぜですか? 開発では機能するのに、製品では機能しないのはなぜですか?

4

1 に答える 1