2017-12-18 5 views
0

Ich habe den Webpack-dev-Server verwendet, um den lokalen Webserver auszuführen.Die Routen des Webapck-Servers Kann nicht abgerufen werden/page

Wenn ich Browser verwendete geben Sie die URL /localhost:8080/sign_in und ich habe den Fehler.

Kann nicht erhalten/sign_in

ich ein Objekt historyApiFallback: true in meinem webpack.config.js hinzufügen und es wurde gelöst.

devServer: { 
    inline: true, 
    port: 8080, 
    historyApiFallback: true, 
    headers:{ 
     'Access-Control-Allow-Origin': '*', 
     "Access-Control-Allow-Methods": "POST, GET, OPTIONS" 
    } 
    } 

Aber wenn ich webpack -p zusammengestellt und führen Sie das node server.js der gleiche Fehler wieder passiert ist.

gefolgt server.js Code

const express = require('express'); 
const path = require('path'); 
const port = process.env.PORT || 8080; 
const app = express(); 
const history = require('connect-history-api-fallback'); 

const indexPath = path.join(__dirname, './public/index.html') 
const publicPath = express.static(path.join(__dirname, '/public')) 

app.use(publicPath) 
app.use(history()) 

app.get('/', (req, res) => { 
    res.sendFile(path.resolve(indexPath)); 
}); 



app.listen(port); 

Wie kann ich diese reparieren?

+0

Sie haben nur den Pfad '/' definiert. Sie müssten auch '/ sign_in' hinzufügen. – Seblor

+0

@Seblor Ich habe react-routes in meiner App benutzt, so dass jede Seite davon abhängig war /index.html –

Antwort

1

Sie haben Ihre Route für die Anmeldung nicht definiert.

Da serverseitiges Rendering nicht aktiv ist, können Sie nicht direkt zur Anmeldung wechseln. Sie müssen zum Index gehen und auf den Link klicken, damit der react-Router zu diesem Pfad gehen kann.

+0

Wie kann ich alle Routen definieren? Die 'index.html' ist genau wie rails setted routes' get '* path', an: "Heim # Index"? –

+1

'app.get ('/ *', (req, res) => { res.sendFile (path.resolve (indexPath)); });' werden dadurch alle Routen machen zu indizieren – illiteratewriter

+0

Dank bro gehen , Es klappt! –

Verwandte Themen