Un, try_files
Syntaxe: | try_files try_files |
---|---|
Défaut: | — |
Contexte: | server , location |
Selon les ressources demandées, vérifiez si les ressources existent dans l'ordre, et renvoyez la première ressource trouvée. Si la ressource demandée n'est pas trouvée, le dernier paramètre sera utilisé pour la redirection interne.
Exemple 1 : www.example.com/a/b (en supposant que la ressource n'existe pas)
emplacement /a/ {
try_files $uri /a/default.gif;
}
Il cherchera d'abord /a/b, mais s'il ne le trouve pas, alors nginx renverra default.gif et /a/b est toujours affiché dans la barre d'adresse du navigateur.
Exemple 2 :
L'effet est de revenir à la page d'accueil lors de l'accès à un chemin inexistant, mais la barre d'adresse du navigateur ne changera pas, par exemple lors de la visite de : www.ab/yyy, si elle n'existe pas, elle reviendra automatiquement à la page d'accueil. page d'accueil.
emplacement / { racine /usr/share/nginx/html/dev/web ; index index.html index.htm; add_header Cache-Control sans cache ; try_files $uri $uri/ /index.html; }
2. Liés à la compression du cache
Il existe plusieurs types JavaScript ici, et de nombreux types de contenu texte/javascript sont obsolètes pour des raisons de compatibilité . Il a été utilisé dès les débuts du HTML.
application/x-javascript est un type de contenu expérimental (d'où le x-). Il ne doit pas être utilisé dans les applications.
application/javascript est le type de contenu correct.
$request_filename est une variable nginx intégrée,
~* régulière insensible à la casse
server {
gzip on;
gzip_min_length 1k;
gzip_buffers 16 64k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_types text/plain application/x-javascript application/javascript text/css application/xml;
gzip_vary on;
listen 80;
server_name a.b.com;
location / {
if ($request_filename ~* .*.(?:index.html)$) {
add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
}
root /usr/a/b/c;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}