我的manifest.appcache文件位于http://example.com/manifest.appcache,但NGINX正在/usr/share/nginx/html/manifest.appcache
我甚至在我的example.conf文件中添加了以下内容:
location /manifest.appcache {
try_files $uri /home/sushi/www/example/manifest.appcache;
}
我的根设置为
root /home/sushi/www/example/;
我做错了什么?
答案 0 :(得分:1)
如果server_name
正是您所使用的,那么您的nginx配置看起来很好,那么我不确切地知道错误,但让我整理您的配置,可能有帮助
对于重定向,我更喜欢使用单独的服务器来执行重定向,而不是使用if条件
server {
listen 80;
server_name www.example.com;
return 301 example.com$request_uri;
}
无需重新声明根和索引。在服务器块级别指定它们就足够了。
server {
listen 80;
server_name example.com;
root /home/sushi/www/example/;
access_log /home/sushi/www/example/logs/access.log;
error_log /home/sushi/www/example/logs/error.log;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
由于manifest.appcache
正好是$uri
的样子,因此您不需要明确提及它,问题是nginx不会与服务器块匹配。
另一个随意的想法是,nginx可能不知道服务器存在,因为你在创建服务器后没有重新启动nginx ..你试过吗?
编辑 :nginx.conf
内的块应移到example.conf
文件中
server {
listen 80;
server_name example.com;
root /home/sushi/www/example/;
access_log /home/sushi/www/example/logs/access.log;
error_log /home/sushi/www/example/logs/error.log;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~* \.(?:manifest|appcache|html?|xml|json)$ {
expires -1;
access_log logs/static.log;
}
}