【问题标题】:Can't target node to serve static files无法定位节点以提供静态文件
【发布时间】:2020-01-05 12:01:09
【问题描述】:

我是 nodejs 的新手。 我正在尝试在 server.js 文件中定位节点以提供静态页面。 使用第一个选项时:

app.use("/", express.static(__dirname +'/site/public/dist/public/', 
{
  index: 'index.html'
}));

该站点已到达,但按 F5 时,我得到 不能获取 / 所以,我发现没有“默认”路由来加载请求的模块, 所以我试着用“*”代替“/”:

app.use("*", express.static(__dirname +'/site/public/dist/public/', 
{
    index: 'index.html'
}));

但不工作。 我做错了什么?

【问题讨论】:

    标签: node.js angular express routing middleware


    【解决方案1】:

    我假设您想使用 express 服务dist 文件夹。将dist 放在server.js 的根目录中。如果您没有正确定义*,这是预期的。我们在静态文件中使用false,它不会中止线程。这意味着false 将导致代码继续执行。所以出现在/.The*之后的代码行将被执行。

    express.static(root, [options])

    这是 Express 中内置的中间件功能。它提供静态文件并基于serve-static。

    
    const express = require('express');
    const path = require('path');
    const app = express();
    
    // serve angular front end files from root path
    app.use('/', express.static('dist', { redirect: false }));
    
    // rewrite virtual urls to angular app to enable refreshing of internal pages
    app.get('*', (req, res) => {
      res.sendFile(path.resolve('dist/index.html'));
    });
    
    app.listen(process.env.PORT, () => {
      console.log("Frontend is started!");
    })
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-22
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多