2017-12-19 2 views
1

FILES https://github.com/microcyberz/expensifyFehler, wenn eine direkte URL reagieren-Router mit params Browser übergeben wird

Wenn ich diese URL zugreifen http://localhost:8081/edit/01 mit eingebauter Navigation von reagieren-Router, es funktioniert gut. Route ist <Route path="/edit/:id/" component={EditExpensePage} />.

Aber wenn ich die gleiche URL direkt in den Browser legen, bekomme ich folgende zwei Zeilen Fehler in der Konsole und Seite wird nichts gerendert.

Fehler

GET http://localhost:8081/edit/bundle.js net::ERR_ABORTED 
GET http://localhost:8081/edit/bundle.js 404 (Not Found) 

werde ich für die Hilfe dankbar sein.

Antwort

0

Dies passiert, weil Ihr Server nicht zur Indexdatei umleitet. Ich meine, was ist hinter http://localhost:8081? Ist es ein Knoten? Sind Sie sicher, dass jede einzelne Anfrage auf die gleiche Weise behandelt wird?

Sie können auch überprüfen, wie Sie Ihre bundle.js einschließen. Ist der Pfad relativ wie ./assets/js/bundle.js oder absolut wie /assets/js/bundle.js? Sollte absolut sein.

+0

In diesem speziellen Fall höchstwahrscheinlich wird der Index geladen, aber der Verweis auf bundle.js ist nicht absolut (dh wird relativ zur aktuellen Seite geladen, zB "bundle.js" oder "../js/bundle.js" anstelle von "/js/bundle.js") Ansonsten wäre der JS nicht der 404, der Seite gezeigt würde. –

+0

Danke. Das Problem wird durch Hinzufügen von "/" vor bundle.js in index.html gelöst. –

0

Hier ist Ihr Problem:

https://github.com/microcyberz/expensify/blob/master/public/index.html#L13

Sie die bundle.js auf den aktuellen Pfad relativ einlegen, anstatt der absoluten von der Wurzel. Ändern Sie dies in /bundle.js und Sie können loslegen.

In Ihrem Beispiel ist die js in Bezug auf die aktuelle URL geladen, die Lösung von /edit/123 zu /edit/bundle.js

+0

Vielen Dank. Es funktionierte. Ich kann diese Antwort aufgrund begrenzter Erfahrung nicht verbessern, aber ich werde es tun, sobald ich infrage komme. Danke noch einmal. –

Verwandte Themen