4

这可能真的很容易解决,我检查了 stackoverflow 但我没有找到任何东西:

我已经用 PHP 和 Apache 安装了 WAMP,成功运行了最新版本的 Laravel。

我有一个 cache.manifest 文件,它可以正确加载,但是即使我更改了它的内容,它似乎也不会刷新。

所以我尝试了一些我发现的东西,包括:

AddType text/cache-manifest .manifest
<IfModule mod_rewrite.c>
   Options -MultiViews
   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^ index.php [L]
</IfModule>
<FilesMatch "\.manifest$">
   Header set Cache-Control "max-age=259200, proxy-revalidate"
</FilesMatch>

当我添加 FilesMatch 部分时,我总是收到内部服务器错误

我能做些什么来防止只缓存 cache.manifest 文件?我也尝试过使用 FileMatch 进行其他操作,但每次都失败(例如,我有那种图像代码(png gif ...),但它不起作用。

谢谢您的帮助。

4

2 回答 2

1

按类型使用过期

AddType语句已存在以确保清单文件具有正确的 mime 类型。这可用于指定适当的缓存标头:

ExpiresByType text/cache-manifest "access plus 0 seconds"

html5 样板 htaccess 文件中提供了这些以及更多有用的信息。

于 2013-07-22T21:19:10.640 回答
1

另一种解决方案是使用 PHP,因为根据HTML5 规范,缓存清单文件的扩展名无关紧要:

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header('Content-Type: text/cache-manifest');
//your content below out of PHP tag
?>
CACHE MANIFEST

然后你可以使用:

<html manifest="manifest.php">
于 2013-07-22T21:25:28.110 回答