J'ai des fichiers à /Users/me/myproject
et je veux les servir à http://stuff.dev/something
en utilisant une simple configuration nginx. Dans le dossier /Users/me/myproject
se trouve quelque chose comme:
index.html
scripts/
app.js
styles/
style.css
Donc, je veux vraiment pouvoir accéder à http://stuff.dev/something
, http://stuff.dev/something/scripts/app.js
etc.
Dans mon Nginx conf, j'ai ceci:
server {
listen 80;
server_name stuff.dev;
location /something {
index index.html;
root /Users/me/myproject;
}
}
Cela ne fonctionne pas (je reçois un 404 si j'essaie d'accéder aux URL ci-dessus), mais si j'essaie d'exécuter exactement la même configuration, mais en utilisant location / {
au lieu de location /something {
, cela fonctionne bien. Comment puis-je servir ce répertoire de fichiers de manière statique mais sur un chemin plutôt que sur l'emplacement racine? Est-ce que je dois avoir les fichiers dans un dossier appelé "quelque chose" comme /Users/me/myproject/something
pour que cela fonctionne? Si oui, y a-t-il un moyen de contourner cela?
J'ai essayé ceci sur mon VPS, et utiliser la commande alias
a fonctionné pour moi:
server {
listen 80;
server_name something.nateeagle.com;
location /something {
alias /home/neagle/something;
index index.html index.htm;
}
}
Je pense que vous pouvez accomplir cela avec la directive try_files , un résultat similaire devrait fonctionner:
server {
listen 80;
server_name stuff.dev;
location /something {
root /Users/me/myproject;
index index.html;
try_files /Users/me/myproject/$uri /Users/me/myproject/$uri/ =404
}
}
Ce peut-être vous obliger à déplacer les fichiers sous / Utilisateurs/moi/mon projet/quelque chose, et si vous ne pouvez vous en tirer, vous devrez essayer quelque chose comme ce qui suit pour le emplacement:
location ~ /something(.*) {
root /Users/me/myproject;
index index.html;
try_files /Users/me/myproject$1 /Users/me/myproject$1/ =404
}