Назад | Перейти на главную страницу

Веб-сайт не загружает статические файлы, когда в NGINX включено содержимое статического кеша

У меня есть VPS под управлением CentOS с NGINX / PHP-FPM. Все работает нормально, кроме тех случаев, когда я добавляю следующие строки для включения статического содержимого кеша. Если я это сделаю, страница не загрузит те файлы, которые указаны для хранения кеша.

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

Кто-нибудь знает почему?

ОБНОВЛЕНО (РЕШЕНИЕ):

Как ответил мне Майкл Хэмптон, для сервера {} не объявлен корень, поэтому я выполнил инструкции и добавил его в файл. Сработало нормально!

Ваш server блок не имеет root директива определена. Вместо этого он, кажется, находится в одном из ваших location блоки. Это один из самые распространенные ошибки nginx. Переместите его под server блок вместо этого.