4

デスクトップ マシンにデプロイされ、Web サーバーとブラウザーの両方を実行する Rails アプリケーションを作成しています (これは、インターネット接続なしで実行できる必要があるテスト用アプリケーションです)。

このため、通常のように Apache/Nginx を前に置かずに、Mongrel または WEBRick を実行します。ブラウザは Mongrel に直接アクセスします。

私が今直面している問題は、アセット (javascript/stylesheets/images) の読み込みに時間がかかることです。通常、Mongrel/WEBRick の前にある Apache プロキシでこれらのアセットに将来の有効期限を設定することでこれを修正します。これにより、アセットは 1 回だけリクエストされ、その後はアクションごとに 1 つのリクエストのみになります。

しかし、この場合、プロキシはなく、私は使用していますconfig.serve_static_assets = true

問題は、Mongrel/WEBrick に、静的アセットに遠​​い将来の有効期限ヘッダーを平手打ちするように指示することは可能ですか?

Ruby 1.9.2 で Rails 3 を使用しています。

4

1 に答える 1

1

あなたはこのようなことを試すことができます:

   def get(path)
     @headers['Content-Type'] = MIME_TYPES[path[/\.\w+$/, 0]] || "text/plain"
     unless path.include? ".." # prevent directory traversal attacks
       @headers['X-Sendfile'] = "#{PATH}/static/#{path}"
     else
       @status = 403 # "403 - Invalid path"
     end
   end
于 2011-03-25T10:16:49.263 に答える