Как кэшировать статический файл JS, который генерируется PHP
Я специально использую программное обеспечение для автоматизации электронной почты Mautic. Mautic имеет код отслеживания JS, который генерируется динамически (/mtc.js
), но поколение не кэшируется. Я использую nginx в качестве своего веб-сервера.
Логическая вещь, которую нужно сделать здесь, это использовать fastcgi_cache для кэширования выходных данных файла. Как я могу использовать fastcgi_cache для кэширования файла JS, который генерируется PHP? Есть ли лучшая альтернатива?
Вот соответствующие части моего vhost (за исключением материала Cerbot):
fastcgi_cache_path /var/www/mail.zachrussell.net/cache levels=1:2 keys_zone=mail.zachrussell.net:100m inactive=60m;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
server {
server_name mail.zachrussell.net www.mail.zachrussell.net;
access_log /var/www/mail.zachrussell.net/logs/access.log;
error_log /var/www/mail.zachrussell.net/logs/error.log;
root /var/www/mail.zachrussell.net/public;
index index.php;
set $skip_cache 0;
if ($request_method = POST) {
set $skip_cache 1;
}
if ($query_string != "") {
#set $skip_cache 1;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
fastcgi_cache mail.zachrussell.net;
fastcgi_cache_valid 60m;
}
[... certbot stuff ...]
}