【问题标题】:Express app to serve index.html at all routes except one sub routeExpress 应用程序在除一条子路线外的所有路线上提供 index.html
【发布时间】:2017-11-28 13:59:57
【问题描述】:

我已经构建了一个 react/webpack 应用程序,其公共目录 dist 包含 index.htmlbundle.jsindex.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 <

【问题讨论】:

标签: express


【解决方案1】:
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")
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多