为什么我的快速通配符路由覆盖了我的静态中间件?

时间:2016-11-16 05:49:39

标签: node.js express

我遇到了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'。如果我删除了通配符(*),那么静态中间件不会被覆盖,但我不再匹配任意路由。

非常感谢任何帮助!

额外的上下文:我正在尝试使用Webpack为React,React Router和Redux提供单页Web应用程序。

1 个答案:

答案 0 :(得分:-2)

您正在使用/ *,它仅将所有路由路由到该路由。所以你可以在/ *之前添加一些路径,比如mypath / *,这样它就不会覆盖你的静态路径