Ich versuche, eine jekyll statische Seite mit Nginx zu hosten. Ich möchte, dass die Site von einem Unterverzeichnis in der URL bedient wird, z. https://example.com/jekyll-site/
. Die Quelldateien befinden sich in einem Git Repo, der in den Ordner /srv/website/html
auf dem Server geklont ist. Wenn ich jekyll build
ausführen, erstellt es die Website-Datei in /srv/website/html/_site
. Es gibt eine index.html
Datei in _site
, die ich für eine Index-Anweisung verwenden möchte.nginx - Wie liefere ich eine Indexdatei für einen Unterordner?
Hier ist die Config ich bisher habe:
server {
# ...
location/{
# proxy_pass'es to another process
}
location = /jekyll-site {
return 302 https://$host$request_uri/;
}
location /jekyll-site/ {
root /srv/website/html/_site;
index index.html;
rewrite_log on;
rewrite /jekyll-site/(.*) /$1 break;
try_files $uri /index.html;
}
}
Nun, wenn ich an https://example.com/jekyll-site/index.html
meinem Browser zeigen, dann dient es der Indexdatei korrekt. Wenn ich zu irgendeinem Beitrag auf der Website gehe, wird es korrekt bedient. Alle internen Links von einem Post zu einem anderen funktionieren ordnungsgemäß. Wenn ich jedoch zu https://example.com/jekyll-site/
gehe, erhalte ich eine 404
Seite anstelle der Indexseite.
Was ist falsch an meiner Konfiguration? Wie konfiguriere ich Nginx, um die Dateien aus diesem Ordner auch mit einer korrekten index
Direktive zu liefern?
Vielleicht können Sie das 'rewrite' entfernen und den Versuch auf' try_files $ uri $ uri/= 404; 'setzen –