4

为了尝试使用 Apache 为我的预编译资产提供服务,根据Rails 指南,我尝试更改此内容:

<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档案中。但是,添加第二个选项后,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 回答