【问题标题】:Node JS not sending file with res.sendFile()节点 JS 不使用 res.sendFile() 发送文件
【发布时间】:2015-10-05 19:59:32
【问题描述】:

我的文件结构如上所示,但我找不到错误的文件:未定义不是函数。

应用路径已设置,我可以通过 console.log 获取: /Users/myname/Desktop/myproject/client

例如,如果我导航到 localhost:3000,页面将正确呈现。然后我可以点击导航到 localhost:3000/login,一切都还好。但是如果我直接访问 localhost:3000/login,即永远不会加载索引页面,那么这条路由:'/*' 会被命中并出现未定义的错误。没有加载任何 HTML。

我这样设置应用路径:

app.use(express.static(path.join(__dirname, '/client')));
    app.set('appPath', path.join(__dirname, '/client'));

我正在使用快递: “~4.0.0”

【问题讨论】:

  • 让我猜猜——你在 Parse 上托管这个?如果没有,您在哪里托管?
  • path.resolve(app.get('appPath') + '/index.html') 输出什么?
  • /Users/myname/Desktop/myproject/client
  • @keithmo 我只是想在本地运行它
  • @JoshC。它输出:/Users/myname/Desktop/myproject/client/index.html

标签: node.js


【解决方案1】:

尝试设置相对文件路径的根目录,这样:

app.set('base', __dirname);

然后:

app.use(express.static('client'));

确保不要将/client 包含两次,以免在路径中出现.../client/client... 之类的内容。

【讨论】:

    【解决方案2】:

    http://expressjs.com/api.html#res.sendFile

    res.sendFile() is supported from Express v4.8.0 onwards

    【讨论】:

      【解决方案3】:

      你很亲密。

      app.use(express.static(__dirname + '/client'));
      

      问候

      【讨论】:

        猜你喜欢
        • 2015-08-27
        • 2019-09-03
        • 1970-01-01
        • 2016-05-26
        • 2014-07-21
        • 1970-01-01
        • 2020-12-09
        • 2019-04-15
        • 2016-09-07
        相关资源
        最近更新 更多