2017-10-05 71 views
0

這是我第一次使用express.js服務反應文件。構建已經運行,服務器正在監聽,但我無法弄清楚爲什麼組件沒有被注入到html文件中。相反,它只是呈現html模板。服務與express express文件

這裏是我的build文件夾中的圖片:

build folder structure

這裏是我的index.js從我的服務器文件夾中的文件:

const express = require('express'); 
const morgan = require('morgan'); 
const path = require('path'); 

const app = express(); 

app.use(morgan(':remote-addr - :remote-user [:date[clf]] ":method 
:url HTTP/:http-version" :status :res[content-length] :response-time 
ms')) 

app.use(express.static(path.resolve(__dirname, '..', 'build'))) 

app.get('*', (req, res) => { 
res.sendFile(path.resolve(__dirname,'..', 'build', 'index.html')) 
}); 

const PORT = process.env.PORT || 3000; 

app.listen(PORT,() => { 
console.log(`App listening on port ${PORT}!`); 
}); 

這是我在控制檯中看到:

served page console

任何幫助將不勝感激。

+0

看起來你的腳本標記src是錯誤的。應該是'src =「/ js/main.33e13313.js」'。你如何設置你的腳本src? –

+0

感謝您的回覆!。默認爲當我npm運行構建。嘗試將其更改爲您的建議並仍然是相同問題 – jschuss

回答

-2

請參閱以下鏈接

react-express-boilerplate

下面的代碼添加到index.html文件

<script src="src="/js/main.33e13313.js""></script> 

main.33e13313.js是包JS與的WebPack的文件。

你的package.json文件將被設置如下:

"scripts": { 
    "clean": "rm -rf build public/bundle.js", 
    "build": "babel server --out-dir build && webpack", 
    "start": "NODE_ENV=production supervisor ./build/main.js", 
    "development": "NODE_ENV=development node ./build/main.js" 
    }, 

您將使用NPM運行構建運行。

您可以使用babel將es6更改爲es5。這是構建工具。

您可以使用webpack打包JavaScript文件。 packagig將JavaScript文件捆綁到一個文件中。這是包裝工具。

+0

雖然此鏈接可能會回答問題,但最好在此處包含答案的重要部分並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/17543662) – Lucius

+0

感謝您的建議!真的很感激它 – jschuss

相關問題