0

私の Rails アプリには、SSL 必須のページと SSL オプションのページがあります。オプションのページは、http と https の両方の URL を持つ、オフサイト (ベンダーからの画像) で提供されるいくつかのアセットを使用します。「このページには安全な要素と安全でない要素の両方が含まれています」という恐ろしい警告を避けるために、SSL 経由でページにアクセスする場合は https を使用する必要があります。

画像の URL をデフォルトで http として返し、要求された場合は https として返すコードを作成しました。私の問題は、リクエストがどのように入ったかをビューで判断することです.request.ssl? ビューでは機能しません。

request.ssl? を使用して @ssl_request のようなものを設定する before_filter を使用してみましたが、それも常に false を返します。これを行うよりエレガントな方法はありますか?

サーバー スタックは Nginx と Passenger です。Apache => Mongrel スタックを使用する他のアプリは X_FORWARDED_PROTO ヘッダーを渡し、SSL が使用されているかどうかを Rails に伝えます。Nginx/Passengerがこれを行わない可能性はありますか?

4

2 に答える 2

1

application.rb で before_filter を試してください:

before_filter { |c| UMNAuthFilter.filter(c) if c.request.ssl? }

正確性を追加するために編集:)

于 2010-03-31T15:19:53.550 に答える
1
<img src="//cdn.example.com/images/99dbe20bc52e4caa.jpg">
于 2010-03-31T15:08:01.130 に答える