0

ActionDispatch::Staticpublic 以外のディレクトリで静的ファイルを提供するために使用したいと考えています。開発では完全に機能しますが、本番環境では同じ結果が得られないようです。

に静的ファイルがあります/var/www/mysite.com-static。イニシャライザに、次のものを追加しました。

Rails.application.config.middleware.insert_after Rack::SendFile, ActionDispatch::Static, '/var/www/mysite.com-static'

の出力rake middlewareは次のとおりです。

use Raven::Rack
use Rack::Sendfile
use ActionDispatch::Static
use Rack::Lock
use #<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x00000005e61130>
use Rack::Runtime
...

/var/www/myapp.com-static 内でリクエストするすべてのページで 404 が発生するのはなぜですか?

4

1 に答える 1

0

Railsアプリの.xmlにミドルウェアを追加して、この問題を解決しましたconfig.ru

require ::File.expand_path('../config/environment',  __FILE__)

# Added the following line
use ActionDispatch::Static, '/var/www/myapp.com-static'

run Rails.application

これは、ミドルウェアが既にマウントされた後にロードされたイニシャライザーで ActionDispatch::Static のパスを設定していたため、機能しました。読み込み順序を正しく構成していれば、Rails.application.config.middlewareうまくいきました。

于 2015-05-20T17:12:51.460 に答える