我最近刚刚尝试将我的node.js应用程序部署到azure应用程序服务,但是当我尝试加载“/”路由时,它显示“您无权查看此目录或页面”。 。当我检查日志流是否有错误时,它显示:
“未为请求的 URL 配置默认文档,并且服务器上未启用目录浏览。您可以尝试以下操作: 如果您不想启用目录浏览,请确保默认 文档已配置并且该文件存在。启用目录 使用 IIS 管理器进行浏览。打开 IIS 管理器。在功能视图中, 双击目录浏览。在“目录浏览”页面上, 在操作窗格中,单击启用。验证 配置/system.webServer/directoryBrowse@enabled 属性是 在站点或应用程序配置文件中设置为 true”
我不明白为什么它说未配置默认文档。我的express.js 应用程序通过渲染登录视图来处理“/”路由。所以不需要有默认文档。
将应用程序部署到 Windows 上的 Azure Web Apps 时,可能会出现您提供的错误消息(“未为请求的 URL 配置默认文档,并且服务器上未启用目录浏览”)。
因此,将应用程序部署到 Linux 上的 Azure 应用服务可能会避免与您提到的默认文档配置相关的特定错误。
我尝试将 NodeJS 应用程序部署到 Azure 应用程序服务。
这是我的项目结构:
my-app
├── views/
│ └── login.ejs
├── node_modules/
├── index.js
├── package.json
└── package-lock.json
Index.js:
const express = require('express');
const path = require('path');
const app = express();
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.get('/', (req, res) => {
res.render('login');
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
登录.ejs:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login</title>
</head>
<body>
<h1>Login Page</h1>
<p>Welcome to nodejs application :)</p>
</body>
</html>
这是本地输出:
创建 Web 应用程序时,选择操作系统为 linux。
对于部署,
在 Visual Studio Code 中选择任务栏上的 Azure 徽标以打开 Azure 窗口。
步骤如下:
1.选择您的 Azure 订阅。
2.然后,选择您创建的网络应用程序
3.右键单击网络应用程序
要在浏览器中查看网站,请右键单击项目并选择 浏览站点。
这是输出: