Używam nginx do serwera mojej zawartości statycznej. Czy istnieje sposób na ustawienie nagłówków wygasających dla każdego pliku, który spełnia określoną regułę? Na przykład, czy mogę ustawić nagłówek wygasający dla wszystkich plików, które mają rozszerzenie „.css”?
96
root
zestawem, w takim przypadku należy dodać dyrektywy do tego bloku. (Wiem, że to 2 lata później, ale dla przyszłych obywateli)location
dyrektywaexpires
dyrektywaźródło
Nie mam wystarczającej reputacji, aby skomentować, dlaczego zaakceptowana odpowiedź spowodowałaby, że pliki nie będą się już wyświetlać, ale wymyśliłem to i chciałbym pomóc!
Krótka wersja:
Upewnij się, że masz katalog główny dla swojego bloku lokalizacji na obrazach, jeśli nie masz globalnego zestawu!
Długa wersja poniżej:
Przede wszystkim moja metoda implementacji tego rozwiązania była bardzo podobna do tej odpowiedzi , w której piszesz regułę (jak w zaakceptowanej odpowiedzi):
do pliku img-cache.conf
a następnie dołącz ten plik do swojej
server {...}
dyrektywy.Mój przykład somesite.com w folderze dostępnym na stronach:
W ten sposób możesz dodać blok lokalizacji buforowania obrazu do wielu witryn, które mogą być uruchomione.
Po drugie, mam sytuację, w której mój / var / www / zawiera dwa foldery, na które zezwalam jako public_html - bezpieczny i szkoleniowy, więc muszę tworzyć określone bloki lokalizacji w dyrektywie serwera mojej witryny, wyróżniając te foldery.
W związku z tym nie mam globalnego katalogu głównego .
Kiedy tworzysz bloki lokalizacji obrazu, być może nie udostępniasz im katalogu głównego, z którego można szukać obrazów!
Moje rozwiązanie polegało wtedy na:
źródło
.conf
. Właściwy foldernginx/1.14.0 (Ubuntu)
wydaje się być/etc/nginx/snippets/
.Możesz także ustawić wygasanie na maksimum. Oto dyrektywa, której używam dla css i js.
źródło
Wszystkie wyżej wymienione rozwiązania będą odmawiać możliwości posiadania różnych aliasów dla różnych ścieżek. Również ze względu na posiadanie różnych dat ważności pamięci podręcznej w jednym miejscu, powinieneś użyć mapy nginx w następujący sposób.
...
Off
wyłącza buforowanie,epoch
(dla epoki uniksowej) powoduje, że zasoby są zawsze ponownie pobierane,max
ustawia datę na maksymalną wartość przeglądarki.~ Image / pasuje do dowolnego typu obrazu.
Więcej informacji na temat map nginx na stronie http://nginx.org/en/docs/http/ngx_http_map_module.html .
źródło
$sent_http_content_type
jest"text/css;charset=UTF-8"
powyżej wyrażenie zawiedzie.Jeśli masz jedno miejsce, w którym znajdują się wszystkie pliki statyczne, coś takiego zrobi ...
Zaakceptowana odpowiedź spowodowała, że nginx nie znalazł żadnego z moich plików statycznych. Nie bardzo wiem dlaczego, ale jest to prosta alternatywa.
źródło
/static
folder (cokolwiek ustawisz w lokalizacji) na końcu aliasu (zaraz po tym.../files
w przykładzie).Ponieważ jest to bardzo stary wątek i znalazłem aktualny niesamowity samouczek.
Być może chcesz to sprawdzić
Jak zaimplementować buforowanie przeglądarki za pomocą modułu nagłówka Nginx w systemie Ubuntu 16.04
źródło