4

コンパイル済みのアセットを Apache で提供するために、このRails Guideに従って、次のように変更してみます。

<VirtualHost *:82>
  ServerName localhost
  DocumentRoot "C:/RubyStack-3.2.5-0/projects/release_checklist/public"
  <Directory "C:/RubyStack-3.2.5-0/projects/release_checklist/public">
    Allow from all
    Options -MultiViews
  </Directory>
  ProxyPass / http://localhost:3001/
  ProxyPassReverse / http://localhost:3001/
  ProxyPreserveHost On  
</VirtualHost>

これに:

<VirtualHost *:82>
  ServerName localhost
  DocumentRoot "C:/RubyStack-3.2.5-0/projects/release_checklist/public"
  <Directory "C:/RubyStack-3.2.5-0/projects/release_checklist/public">
    Allow from all
    Options -MultiViews
  </Directory>
  ProxyPass / http://localhost:3001/
  ProxyPassReverse / http://localhost:3001/
  ProxyPreserveHost On

  <LocationMatch "^/assets/.*$">
    Header unset ETag
    FileETag None
    # RFC says only cache for 1 year
    ExpiresActive On
    ExpiresDefault "access plus 1 year"
  </LocationMatch>
</VirtualHost>

私のhttpd.confファイルで。ただし、2 番目のオプションが追加されている場合、Apache サーバーは起動しません。私は何を間違っていますか?

4

1 に答える 1

11

どのようなエラーが表示されますか? mod_expires が apache にコンパイルされていて、モジュールがロードされていることは確かですか?

無効なコマンド 'ExpiresActive' です。スペルが間違っているか、サーバー構成に含まれていないモジュールによって定義されている可能性があります

ええ、それは通常、ロードされていないモジュールにマップされたディレクティブを使用した場合に発生するエラーです (または、apache に同じように見える単なるスペルミスのディレクティブ)。httpd.conf をチェックして、そのLoadModule expires_module modules/mod_expires.so行がコメントアウトされていないことを確認し、行が欠落している場合は追加する必要があります。Apache のバージョンによっては、行が若干異なる場合があります。

于 2012-07-23T18:11:51.643 に答える