it-swarm.com.de

Wie kann man mit nginx ein Verzeichnis mit statischen Dateien an einem bestimmten Pfad bereitstellen?

Ich habe Dateien unter /Users/me/myproject und möchte sie unter http://stuff.dev/something mit einer einfachen Nginx-Konfiguration bereitstellen. Im /Users/me/myproject Ordner ist so etwas wie:

index.html
scripts/
    app.js
styles/
    style.css

Ich möchte also wirklich in der Lage sein, auf http://stuff.dev/something, http://stuff.dev/something/scripts/app.js usw. zuzugreifen.

In meinem Nginx Conf habe ich Folgendes:

server {
  listen      80;
  server_name stuff.dev;

  location /something {
    index  index.html;
    root /Users/me/myproject;
  }
}

Dies funktioniert nicht (ich erhalte eine 404, wenn ich versuche, die oben genannten URLs aufzurufen). Wenn ich jedoch genau das gleiche Setup versuche, aber location / { anstelle von location /something { verwende, funktioniert dies problemlos. Wie kann ich dieses Dateiverzeichnis statisch aber unter einem Pfad statt unter dem Pfad root bereitstellen? Muss ichhaben, damit die Dateien in einem Ordner namens "something" wie /Users/me/myproject/something funktionieren? Wenn ja, gibt es einen Weg, das zu umgehen?

12
rhodesjason

Ich habe dies auf meinem VPS ausprobiert und der Befehl alias funktionierte für mich:

server {
  listen 80;
  server_name   something.nateeagle.com;

  location /something {
    alias /home/neagle/something;
    index index.html index.htm;
  }
}
18
Nate

Ich glaube, dass Sie dies mit der Direktive try_files erreichen können, so etwas sollte funktionieren:

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
  }
}

Dieses (möglicherweise) erfordert, dass Sie Dateien unter / Users/me/myproject/irgendwas verschieben. Wenn Sie damit nicht fertig werden, müssen Sie Folgendes für Folgendes versuchen: Standort:

  location ~ /something(.*) {
    root /Users/me/myproject;
    index  index.html;

    try_files /Users/me/myproject$1 /Users/me/myproject$1/ =404
  }
0
awinder