Сервер Nginx не загружает CSS-файлы из каркаса скелета
Привет всем,
Я новичок в работе с серверами NIGNX и Linux. Мой HTML-файл отображается, но мой сервер не загружает CSS-файлы.
Единственное, что я нашел, была эта строка include /etc/nginx/mime.types;
который я включаю в блок http.
После этого я перезагружаю свой конфиг с sudo nginx -s reload
, Конечно, я также казнил sudo nginx -s stop
а также sudo nginx
,
Это весь мой конфиг:
http {
include /etc/nginx/mime.types;
server {
location / {
root /data/www;
}
location ~ \.(gif|jpg|png)$ {
root /data/www/images;
}
}
}
events {}
Мои скелетные файлы находятся в /data/www. В этом каталоге есть еще одна папка CSS.
Заранее спасибо.
1 ответ
Прежде всего, вам нужно указать NGINX, чтобы ваши статические файлы получали TTL (время жизни) через заголовки expire. Найдите это в вашем конфигурационном файле NGINX, если его там нет. Создать новую директиву с location
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
expires 1s;
}
После этого продолжите и удалите ваши файлы с сервера и заставьте его обслуживать новые файлы.
- Отключить sendfile в
nginx.conf
- Набор истекает 1 с в
mysite.conf
- Явно установить заголовок Cache-Control:
add_header Cache-Control no-cache;
Конечно, прежде чем делать что-либо выше. Если это не требует решительных мер, попробуйте вручную удалить все в папке кеша: /var/cache/nginx
Если это не поможет, продолжайте со всем перечисленным здесь!
После того, как вы успешно очистили свой сервер от предоставления статических файлов. Добавьте это в свой блок сервера NGINX для достижения оптимизации.
gzip on;
gzip_comp_level 2;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/x-javascript text/xml text/css application/xml;
Можно установить заголовки expire для файлов, которые не изменяются и обслуживаются регулярно.
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}