2017-07-22 5 views
0

Ich fange an, dabei verrückt zu werden. Aus irgendeinem Grund funktioniert Routing nicht auf meiner Single-Page-Anwendung. So funktioniert www.example.com, aber nicht www.example.com/service. Ich habe viele Posts darüber gelesen, wie man es beheben kann, aber nichts scheint zu funktionieren.Nginx Route mit Einzelseite App

Dies ist meine Config-Datei auf /etc/nginx/conf.d/App.conf

server { 
    listen 80; 
    server_name example.com *.example.com; 
    return 301 https://example.com$request_uri; 
} 
server { 
    listen 443 ssl; 
    server_name www.example.com; 
    ssl_certificate /path/to/certificate/; 
    ssl_certificate_key /path/to/certificate/key; 

    root /var/www/App/public; 
    index index.html; 
    location/{ 
    try_files $uri /index.html; 
    } 
    ssl_session_timeout 5; 
} 

habe ich versucht, alle Arten von verschiedenen „location“ Routen, und nichts scheint zu funktionieren. Ich starte auch den Dienst mit "sudo service nginx restart" jedes Mal, wenn ich mich ändere.
Irgendwelche Hinweise?

+0

Sie haben uns nicht gesagt, was "Service" ist. Ein Unterverzeichnis von '/ var/www/App/public'? Wenn Sie "www.example.com/service/" eingeben (mit einem Schrägstrich), funktioniert das? – Buster

+0

Es ist eine einseitige Anwendung. Das gesamte Routing sollte in die Indexdatei zurückkehren und der Code sollte je nach Route einen bestimmten Code darstellen. EDIT: Um zu klären, ob ich etwas unklar war; der Fehler 404 führt nicht zurück zum Index –

+0

Gibt es neben dem "Service" viele weitere Möglichkeiten für die Pfadkomponente (n) der URI? Oder nur ein kleiner fester Satz von Möglichkeiten? – Buster

Antwort

0

In den Kommentaren, die Sie sagten, gibt es eine kleine feste Reihe von möglichen Routen. In diesem Fall können Sie einen Ort Block für jede Strecke mit einem Alias ​​auf die oberste Ebene hinzufügen, zum Beispiel

location/{ 
      try_files $uri $uri/ =404; 
    } 

    location /services { 
      alias /var/www/App/public; 
      try_files $uri $uri/ =404; 
    } 

Edit: Oder, wenn Sie den Top-Level index.html dienen wollen als Reaktion auf jede Anfrage,

location/{ 
      try_files /index.html =404; 
    }