#angular #nginx
#angular #nginx
Вопрос:
Я сжимаю все файлы в dist
папке и пытаюсь обслуживать gzip
файлы через Nginx.
Ниже приведена моя конфигурация nginx:
server {
listen 80 default_server;
server_name _;
root /PATH_TO_DIST_FOLDER/;
index index.html index.htm index.html.gz;
include /etc/nginx/mime.types;
gzip_static on;
gzip_proxied any;
gzip_vary on;
gunzip on;
gzip_types text/html text/plain text/css application/json application/javascript text/xml applicat$
location / {
expires 1y;
access_log off;
add_header Cache-Control "max-age=31556952, public";
add_header Content-Encoding gzip;
try_files $uri $uri/ /index.html.gz;
}
}
Проблема:
Сначала он правильно загружает архивированный index.html
файл.
И index.html
будет загружаться ресурсы main.js
, такие как polyfills.js
, styles.css
, и т.д.
Но запрос на получение main.js
index.html
снова возвращает содержимое.
У меня есть только gzip
файлы в каталоге dist.
Я думаю try_files
, что не находит соответствующий gzip
файл.
Не могли бы вы кто-нибудь помочь мне, как я могу решить эту проблему?
Обновить
Если я обновлю конфигурацию, как показано ниже:
server {
listen 80 default_server;
server_name _;
root /PATH_TO_DIST_FOLDER/;
index index.html index.htm index.html.gz;
include /etc/nginx/mime.types;
location / {
expires 1y;
access_log off;
add_header Cache-Control "max-age=31556952, public";
gzip_static always;
gzip_proxied any;
try_files $uri $uri/ /index.html.gz;
}
}
Он просто загружает gzip
файл index.html .
Комментарии:
1.
try_files
неgzip_static
знает, поэтому$uri
не ищет$uri.gz
версию файла. Поскольку у вас нет обеих версий файла, присутствующих на диске, вы можете попробовать:try_files $uri $uri.gz $uri/ /index.html.gz;
2. я тоже пробовал это, но не сработало..
3. У меня есть еще одно предложение, попробуйте заменить
try_files
оператор наif (!-e $request_filename.gz) { rewrite ^ /index.html last; }
(я намеренно удалил.gz
fromindex.html
)4. Хорошо, я попробую это
5. не могли бы вы проверить мой обновленный вопрос?