2017-06-01 78 views
0

我正在將一個項目從Gulp遷移到Webpack 2.這是一個客戶端 - 服務器應用程序(使用express)。我必須包括在我的服務器的WebPack中間件,並且還增加了此位:用Webpack dev服務器不能正常工作重新加載'sub'頁面

app.get('*', function (req, res) { 
    res.sendFile(path.normalize(`${__dirname}/../client/index.html`)); 
}); 

現在,這個問題是,現在如果點擊有關應用程序,東西做工精細,反應路由器加載子頁面,所以一切都好。但是,如果我嘗試重新加載任何這些子頁面(如localhost:3000 /帳戶等,我會得到一個空白頁)。我認爲這是因爲'*'index.html被提供,這將不會呈現在這種情況下(不知道爲什麼,但我可以看到正在顯示的頁面的來源,它是index.html) 。我試圖將historyApiFallback包含在dev服務器配置中,但沒有幫助)。

+0

現在看來似乎是不完全一樣的index.html,在重裝-scenario腳本位丟失,所以這就是爲什麼我得到一個空白頁面的解釋。現在我只需要弄清楚爲什麼腳本標籤被省略了...... – Janos

回答

0

所以我意識到問題在於devserver返回的是原始html文件,而不是由Webpack編譯的原始html文件。有了這個手我做了另外一個谷歌搜索,發現了一個更好的辦法來建立devserver:

app.use('*', function (req, res, next) { 
    var filename = path.join(compiler.outputPath,'index.html'); 
    compiler.outputFileSystem.readFile(filename, function(err, result){ 
    if (err) { 
     return next(err); 
    } 
    res.set('content-type','text/html'); 
    res.send(result); 
    res.end(); 
    }); 
}); 

(在這裏看到:https://github.com/jantimon/html-webpack-plugin/issues/145

相關問題