我刚刚写了一些PHP代码,将我网站上的所有JS合并到一个文件中,哈希,然后以哈希文件名作为源回显<script>
标签。我将所有这些散列文件存储在一个文件夹中,并在每次生成新散列时删除旧散列。
我希望能够打开此文件的缓存,因为散列文件名确定浏览器何时需要下载新文件(IE:它请求的实际URL不同)。有谁知道如何在PHP中挂钩这个请求?类似的东西:
if ($_GET['folder'] = "path/to/hashed/folder/or/file")
{
//Do something
}
非常感谢任何帮助。
答案 0 :(得分:1)
除非您使用PHP提供JavaScript,否则无法挂钩请求。但是,您不需要使用PHP设置缓存标头。您可以将Web服务器配置为直接执行此操作。如何执行此操作取决于您使用的服务器。
答案 1 :(得分:0)
您要使用的是一个名为.htaccess的文件。这是一个简单的规则,通过一个文件发送所有内容,这里名为index.php。
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/some_file_that_you_want_to_exclude_from_this_rule
RewriteCond %{REQUEST_URI} !^/some_other_file_that_you_want_to_exclude_from_this_rule
RewriteRule ^(.*)$ index.php [L]
完整的网址将在$ _SERVER [&#39; REQUEST_URI&#39;]中,而$ _SERVER中的其他变量会将您指向其他信息($ _SERVER [&#39; REDIRECT_URL&#39;]排除主机名称)。