【发布时间】:2017-03-30 05:25:05
【问题描述】:
我遇到了 Express v.4.14 的问题。我的通配符路由似乎覆盖了我的静态中间件。代码如下:
const app = express()
const indexPath = path.join(__dirname, './index.html')
const publicPath = express.static(path.join(__dirname, './public'))
app.use('/public', publicPath)
app.get('/*', function(req, res) { res.sendFile(indexPath); });
return app
出于某种原因,对“/public/SomeExistingFile.js”的请求会返回“/index.html”。如果我删除通配符 (*),则静态中间件不会被覆盖,但我不再匹配任意路由。
非常感谢任何帮助!
Extra Context:我正在尝试使用 Webpack 为带有 React、React Router 和 Redux 的单页 Web 应用程序提供服务。
【问题讨论】:
-
在路由定义后添加
app.use('/public', publicPath)可能会有所帮助。 -
感谢您的建议。不幸的是,我遇到了同样的问题:所有请求都被定向到“/index.html”,包括对“/public/SomeExistingFile.js”的请求
-
我尝试了类似的方法并为我工作,也许您未包含在帖子中的某些代码导致了问题。