gpt4 book ai didi

node.js - 使nodejs在部署后设法提供静态 Angular 页面

转载 作者:行者123 更新时间:2023-12-03 12:18:46 24 4
gpt4 key购买 nike

nodejs 新手。我有一个 API 文件夹——每当服务器收到 API 请求时——它应该执行绑定(bind)到该路由的函数。但是 - 每当有非 API 请求时,我都想要 nodejs服务器提供静态文件,以便 Angular 应用程序将“承担责任”并显示相关组件。这主要体现在我在其中一个 Angular 组件中进行刷新 (F5) 时。

这是我的 nodejs相关代码:

app.use("/api", require("./api/v1"));  // This should take care in every API request

我的静态文件位于(部署后)/site/public/dist/public/ 下并且有一个带有 <base href="<app root location>"> 的 index.html .为简单起见 - 我希望我的应用程序(在构建到产品后)设法刷新并到达相同的组件而不会出现“无法获取”错误

这是我已经尝试过的,但不太成功:

app.use('/', express.static(__dirname +'/site/public/dist/public/', { redirect: false }));
app.use('*', (req, res) =>
{
res.sendFile(__dirname +'/site/public/dist/public/');
});

最佳答案

需要添加index.html才能显示html文件

尝试使用这样的东西

// For static files
app.use(express.static('%dir_name relative to the file path%'))
// For virtual routes use
app.use('*', (req, res) =>
{
res.sendFile(__dirname +'/site/public/dist/public/index.html');
});

引用 https://expressjs.com/en/starter/static-files.html

关于node.js - 使nodejs在部署后设法提供静态 Angular 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57758210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com