2016-12-16 127 views
0

我正在開發我的項目,從此React-Webpack樣板庫(https://github.com/wallacyyy/webpack-heroku/blob/master/server.js)開始。一切正常,但現在,我想實現我的陣營內部應用程序的路由,而要做到這一點,我必須修改一個文件(server.js)以下:快速通配符GET休息路由到React應用程序

相反的:

app.get('/', function (_, res) { res.sendFile(indexPath) }) 

我使用:

app.get('*', function (_, res) { res.sendFile(indexPath) }) 

當我做到這一點的變化,一切的休息時間和程序做出反應不會再呈現。我唯一得到的是瀏覽器中的錯誤:bundle.js:1 Uncaught SyntaxError: Unexpected token <,如果我試圖看到bundle.js的內容,我會得到index.html的內容。

任何想法爲什麼快遞通配符路由會破壞React應用程序?

+0

聽起來像這樣做是破壞你的資產,如bundle.js正確的服務。如果你正在用nginx提供靜態資產,然後將所有其他代理代理到節點,這不會發生。另一個「修復」將確保您的靜態文件路徑出現在通配符之前。 –

+0

你能告訴我如何實現後者? – Teo

+0

您是否嘗試過從publicPath而不是indexPath加載?爲此,您需要將

添加到publicPath index.html。我想知道是否像凱文說,它與渲染靜態文件。 –

回答

0

根據this comment,webpack-hot-middleware配置需要在*處理程序之前,因此它可以匹配路徑。找到這些信息後,修復程序非常簡單,我在GET處理程序之前移動了webpack-hot-middleware的配置。