当NGINX启用静态caching内容时,网站不加载静态文件

我有一个使用NGINX / PHP-FPM运行CentOS的VPS。 一切工作正常,除了当我添加以下行以启用静态caching内容。 如果我这样做,页面不会加载指定的这些文件来保持caching。

location ~* \.(ico|css|js|gif|jpg|jpeg|png)$ { expires 30d; add_header Vary Accept-Encoding; access_log off; } 

这是我的整个服务器{}:

 server { listen 80; server_name mywebsite.com www.mywebsite.com; #location ~* \.(ico|css|js|gif|jpg|jpeg|png)$ { # expires 30d; # add_header Vary Accept-Encoding; # access_log off; #} location / { if ($http_host ~* "^www.(.*)$"){ set $rule_0 1$rule_0; set $bref_1 $1; } if ($rule_0 = "1"){ rewrite ^/(.*)$ http://$bref_1/$1 permanent; } rewrite ^/search/(.*)/(.*)/?$ /index.php?search=$1&page=$2&type=mp3 las$ rewrite ^/(.*)/(.*)/(.*)?$ /index.php?search=$1&page=$2&type=$3 last; root /var/www/mywebsite.com/public_html; index index.php index.html index.htm; } location ~ \.php$ { fastcgi_read_timeout 300; root /var/www/mywebsite.com/public_html; fastcgi_pass unix:/tmp/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 

有谁知道为什么?

更新(解决scheme):

正如迈克尔·汉普顿(Michael Hampton)回答我的,服务器{}没有声明根,所以我按照说明将其添加到文件中。 工作很好!

  • Nginxcaching符号链接
  • Nginx + Php5-fpm不能渲染php文件
  • 不同的虚拟主机的不同的php.ini设置(php-fpm)
  • Nginx / PHP-FPM =空白页面
  • cachingPHP页面,Varnish,nginx,其他?
  • 泊坞窗容器中的php slowlog导致ptrace错误
  • One Solution collect form web for “当NGINX启用静态caching内容时,网站不加载静态文件”

    您的server块没有定义root指令。 相反,它似乎是在你的location块之一。 这是最常见的nginx错误之一 。 改为在server块下移动它。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.