nginx在尝试缓存css/js等时给出403

nginx在尝试缓存css/js等时给出403,nginx,Nginx,当我尝试为用户缓存静态文件时,使用 location ~* \.(js|css|png|jpg|jpeg|gif|ico|bmp|ttf|tof|svg|swf)$ { expires max; access_log off; error_log off; } 静态文件不会加载(访问时会禁用403),因此我的站点加载时不会加载任何这些静态文件。当我把那部分注释掉时,一切都正常工作了 有人能解释为什么会发生这种情况吗?可能是因为您没有在外部

当我尝试为用户缓存静态文件时,使用

   location ~* \.(js|css|png|jpg|jpeg|gif|ico|bmp|ttf|tof|svg|swf)$ {
       expires max;
       access_log off;
       error_log off;
    }
静态文件不会加载(访问时会禁用403),因此我的站点加载时不会加载任何这些静态文件。当我把那部分注释掉时,一切都正常工作了


有人能解释为什么会发生这种情况吗?

可能是因为您没有在外部上下文(例如服务器块)中指定任何根指令

如果将根指令添加到服务器块或位置块,并带有指向静态文件夹的路径,则该指令将被修复:

server{
    .
    .
    .
    root /path/to/static/folder;

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|bmp|ttf|tof|svg|swf)$ {

       # or add a root directive here
       root /path/to/static/folder;

       expires max;
       access_log off;
       error_log off;
    }
}

这可能是因为您没有在外部上下文(例如服务器块)中指定任何根指令

如果将根指令添加到服务器块或位置块,并带有指向静态文件夹的路径,则该指令将被修复:

server{
    .
    .
    .
    root /path/to/static/folder;

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|bmp|ttf|tof|svg|swf)$ {

       # or add a root directive here
       root /path/to/static/folder;

       expires max;
       access_log off;
       error_log off;
    }
}

你的问题不清楚。可能会发布一个链接到您的完整配置。另一方面,这些Nginx配置的静态文件列表在网络上已经过时了将近两年。现在发生的是,每当我通过regex将这些文件中的任何一个作为目标时,它都会给出403 Foridden错误。我将查询替换为\.css$,现在图像加载正常,只是css给出了403错误。经过更多测试,它甚至不必是regex-我为主wordpress css文件创建了一个完整的路径,这仍然是403。我把它改成了0777,并把nginx使用的集团www数据变成了所有者。你的问题不清楚。可能会发布一个链接到您的完整配置。另一方面,这些Nginx配置的静态文件列表在网络上已经过时了将近两年。现在发生的是,每当我通过regex将这些文件中的任何一个作为目标时,它都会给出403 Foridden错误。我将查询替换为\.css$,现在图像加载正常,只是css给出了403错误。经过更多测试,它甚至不必是regex-我为主wordpress css文件创建了一个完整的路径,这仍然是403。我将其修改为0777,并将nginx正在使用的组www数据输入到所有者中