如何使用 try_files 检查缓存文件

如何使用 try_files 检查缓存文件

这个问题让我抓狂。我花了至少 30 分钟才解决它

如果我注释掉 try_files,一切都会正常工作,只是我的缓存文件没有被提供(我通过日志文件检查)

如果我有以下网址

/
/name
/name/

它们应该与下面的文件相匹配。

/var/www/domain/cache/index.html
/var/www/domain/cache/name/index.html
/var/www/domain/cache/name/index.html

我如何使用 try_files 检查它们,如果 html 缓存不存在,则继续执行位置块的其余部分。这是任务中的块

location ~ /$ {
    #try files here
    root /var/www/domain/;
    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/var/run/php-fastcgi/php-fastcgi.socket;
    fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}

答案1

尝试这样的事情:

server {
     ...
     location @whatever {
        root /var/www/domain/;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/php-fastcgi/php-fastcgi.socket;
        fastcgi_param SCRIPT_FILENAME $document_root/index.php;
        }
     location ~ /$ {
        root /var/www/domain/cache/;
        try_files $uri $uri/ @whatever;
        }
}

如果它有效请告诉我...

相关内容