我正在尝试使用React / Redux / Express堆栈创建SPA。我的服务器目前看起来像这样:
[[1]]
x y PANEL group ymin ymax xmin xmax colour fill size linetype alpha
1 1 13.02040 1 1 0 13.02040 0.55 1.45 NA grey35 0.5 1 NA
2 2 14.37956 1 2 0 14.37956 1.55 2.45 NA grey35 0.5 1 NA
[[2]]
x xend y yend PANEL group colour size linetype alpha
1 0 0.1 14.27065 14.27065 1 -1 red 0.5 1 NA
2 0 0.1 14.27065 14.27065 1 -1 red 0.5 1 NA
在我的html中,我有一个脚本标签,其中包含src =" webpack包文件的路径"。 src返回html文档而不是捆绑文件的内容。我知道这是因为我服务器中的所有路径。我的问题是如何设置路线,以便全能不影响其他路线?先谢谢你了!
编辑:
这是我的完整HTML:
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)
答案 0 :(得分:1)
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
,你会立即看到它。