Azure Web 应用程序服务找不到我的 Web 应用程序的 manifest.json 文件

问题描述 投票:0回答:1

我已经完成了 Web 应用程序的开发,在本地主机中启动时一切都按预期工作(包括清单和服务工作线程)。

我正在使用 azure 的学生应用程序服务部署应用程序。

应用程序的核心功能已正确部署(连接数据库、页面导航用户交互等)

不幸的是,清单文件未正确加载,并且此错误记录在开发工具的控制台中: “获取 https://basketballlearningplatform.azurewebsites.net/manifest.json 404(未找到)”


到目前为止,我已经编码了:

  • 仔细检查清单文件是否正确链接到layout.ejs头中:
<link rel="manifest" href="/manifest.json">
  • 确保公共文件夹在 app.js 中正确提供:
app.use(express.static("./public"));

注意:我认为实现本身没有任何问题,否则它也无法在本地主机中工作(如果我错了,请纠正我)

此外我还检查过:

  • 清单文件存在于 azure vscode 扩展中:

azure vscode 扩展中的文件

  • 清单文件通过 Azure 门户显示在 KUDU 调试控制台中:

kudu 调试控制台中的文件

提前感谢任何有解决方案的人!

node.js azure deployment progressive-web-apps manifest
1个回答
0
投票

我创建了一个示例应用程序,成功将该应用程序部署到 azure web 应用程序,并且可以查看

/manifest.json
页面。

  • app.use(express.static("./public"));
    期望
    public
    文件夹位于项目的主级别。检查
    public
    文件夹是否位于正确的位置。

我已更改线路

app.use(express.static("./public"));
到下面,它对我有用

app.use(express.static(path.join(__dirname, 'public')));

确保在代码中添加正确的manifest.json文件路径

app.get('/manifest.json', (req, res) => {
    res.sendFile(path.join(__dirname, 'public/js/manifest.json'));
});
  • 此行告诉应用程序发送位于
    manifest.json
    文件夹中的
    public/js/
    文件作为向
    /manifest.json
    发出请求时的响应。

完成app.js

const express = require('express');
const path = require('path');
const ejsLayouts = require('express-ejs-layouts');

const app = express();

app.use(ejsLayouts);

app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));

app.use(express.static(path.join(__dirname, 'public')));

app.get('/manifest.json', (req, res) => {
    res.sendFile(path.join(__dirname, 'public/js/manifest.json'));
});

app.get('/', (req, res) => {
    res.render('index');
});

const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
    console.log(`Server is running on http://localhost:${PORT}`);
});

已成功将应用程序部署到 Azure Web 应用程序

输出enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.