[英]Creating a Single Page Application with Express
我正在嘗試使用React / Redux / Express堆棧創建SPA。 我的服務器當前如下所示:
import express from 'express'
import dotenv from 'dotenv'
import path from 'path'
dotenv.config()
const app = express()
app.use(express.static(__dirname + '../client/static/public/'))
app.get('*', (req, res) => {
res.sendFile(path.resolve(__dirname,
'../client/static/public/index.html'))
})
app.listen(process.env.PORT)
在我的html中,我有一個腳本標簽,其中包含src =“ webpack捆綁文件的路徑”。 src返回html文檔,而不返回捆綁文件的內容。 我知道這是因為我的服務器中存在所有路由。 我的問題是如何設置路線,以使全包不干擾其他路線? 謝謝高級!
編輯:
這是我的完整HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Backers Online</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>
<body>
<div id="root"></div>
<script src="../build/app.bundle.js"></script>
</body>
</html>
app.use(express.static(...))
的目的是提供給定目錄中的文件。 出於安全原因,它不會提供該目錄之外的文件(例如../build/app.bundle.js
) 。 因此,應根據要提供目錄的次數添加它:
app.use(express.static(__dirname + '/../client/static/public/'));
app.use(express.static(__dirname + '/../client/static/build/'));
然后在客戶端,您只需要請求文件,HTML不知道哪些目錄包含它們:
<script src="app.bundle.js"></script>
編輯:您在您服務的目錄路徑中有一個錯字。 添加這樣的
/
:__dirname + '/..'
正如我在評論中所說,如果顯示__dirname
,則會立即看到它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.