我有一个由PHP生成的javascript文件的expires头问题.
该网站有两种类型的JavaScript文件.一部分是静态javascript文件,一部分是由PHP动态生成的.
conf没有过期标题
这里没有将过期标题添加到.js文件中(所有文件都返回HTTP 200)
与过期标题conf
为.js文件添加位置时,所有动态生成的文件都会返回HTTP 404
所有动态生成的javascript文件都命名为* -PHP.js
文件结构
PHP路由
最佳答案
对于Nginx,PHP绝不是Javascript. Nginx无法区分呈现html的PHP和呈现javascript的PHP(如果我错了,请纠正我).
因此,要做的就是设置一个单独的文件夹,其中包含生成所有JS的PHP文件(代码未经过测试!):
location ~ \normal_PHP/.PHP${
include /var/ini/Nginx/fastcgi.conf;
fastcgi_pass PHP;
fastcgi_param SCRIPT_FILENAME /var/www/dyndev.dk/public/secure/index.PHP;
}
location ~ \js_PHP/.PHP${
expires 1y;
add_header Cache-Control "public";
include /var/ini/Nginx/fastcgi.conf;
fastcgi_pass PHP;
fastcgi_param SCRIPT_FILENAME /var/www/dyndev.dk/public/secure/index.PHP;
}
PHP
header('Expires: '. gmdate('D,d M Y H:i:s \G\M\T',time() + (60 * 60))); // 1 hour