我已经构建了一个react / webpack应用程序,其中包含dist
和index.html
的公共目录bundle.js
。 index.html
链接到<script src="./bundle.js />
的捆绑包,我希望为所有路由提供index.html
(因为react-router处理路由)。但是对于/demos/:name
,当name
有值时,我想发送一个静态文件。例如,当/demos
渲染为反应组件(服务器发送index.html)时,我的服务器会将/demos/one
解释为从服务器请求/demos/one.html
。到目前为止,我一直试图这样:
var express = require('express');
var app = express();
app.get("demos", (req,res) => {
res.sendFile(__dirname + "/dist/index.html")
})
app.get("demos/:name", (req,res) => {
const { name } = req.params
res.sendFile(__dirname + `./demos/${name}.html`);
})
app.use("*", express.static('dist'));
var server = app.listen(8080, function () {
var {host, port} = server.address()
console.log(`listening at http://${host}:${port}`)
})
但是,我一直在浏览器控制台中获取Uncaught SyntaxError: Unexpected token <
。
答案 0 :(得分:0)
app.get("demos/:name", (req,res) => {
const { name } = req.params
res.sendFile(__dirname + `./demos/${name}.html`);
})
app.get("*", (req,res) => {
res.sendFile(__dirname + "/dist/index.html")
})