2012-03-17 56 views
1

当我尝试缓存静态文件的用户,使用nginx的努力缓存CSS时给予403/JS等

location ~* \.(js|css|png|jpg|jpeg|gif|ico|bmp|ttf|tof|svg|swf)$ { 
     expires max; 
     access_log off; 
     error_log off; 
    } 

静态文件不加载(并给予403访问时禁止),所以我的网站加载没有任何这些静态文件。当我评论这部分内容时,一切都应该如此。

任何人都可以解释为什么发生这种情况?

+0

你的问题不明确。也许发布一个链接到你的完整配置。从另一个角度来看,这些Nginx配置与在网上找到的长列表静态文件已经过时了近两年。 – Dayo 2012-03-17 20:58:41

+0

发生什么事情是,只要我通过正则表达式的任何文件,它会给出403 Foridden错误。我将查询替换为\ .css $,现在图像加载正常,只是CSS提供了403错误。 – Ayub 2012-03-17 21:25:56

+0

经过更多的测试,它甚至不必是正则表达式 - 我完成了主要的wordpress css文件的路径,并且仍然是403ed。我将它修改为0777,并将nginx正在使用的组www-data添加到所有者中 – Ayub 2012-03-17 21:32:36

回答

1

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

如果添加根指令到服务器块或者定位块与路径的静态文件夹,这将是固定:

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; 
    } 
}