我使用express.static来提供一些页面,让我们说你浏览:
https://amazing.com/static
它提供目录的内容,在我的例子中是index.html和JS脚本,太棒了!
现在,我想实现以下目标:
如果您浏览
https://amazing.com/static/whatever
我想提供与上面相同的页面,但保持“无论什么”的URL完好无损,其中'what'是某些动态内容的标识符。
客户端应该在该URL上,以便客户端JS脚本可以在加载&之后根据路径获取内容。显示静态页面。
不确定这可以用express.static实现 - 我是节点/表达生态系统的新手...
答案 0 :(得分:0)
您可以实现此目的,但不能使用express.static()
。您需要定义一个动态路由,忽略路径中的标识符并使用所需的静态文件进行响应:
// ...
const { resolve } = require('path');
// wherever your static files are, relative to this file
const myStaticDirectory = './www';
app.use('/static', express.static(resolve(__dirname, myStaticDirectory)));
app.get('/static/:id', (req, res) => {
res.sendFile(resolve(__dirname, myStaticDirectory, 'index.html'));
});