我已经完成了 Web 应用程序的开发,在本地主机中启动时一切都按预期工作(包括清单和服务工作线程)。
我正在使用 azure 的学生应用程序服务部署应用程序。
应用程序的核心功能已正确部署(连接数据库、页面导航用户交互等)
不幸的是,清单文件未正确加载,并且此错误记录在开发工具的控制台中: “获取 https://basketballlearningplatform.azurewebsites.net/manifest.json 404(未找到)”
到目前为止,我已经编码了:
<link rel="manifest" href="/manifest.json">
app.use(express.static("./public"));
注意:我认为实现本身没有任何问题,否则它也无法在本地主机中工作(如果我错了,请纠正我)
此外我还检查过:
提前感谢任何有解决方案的人!
我创建了一个示例应用程序,成功将该应用程序部署到 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 应用程序
输出: