Azure 错误 - 未为请求的 URL 配置默认文档,并且服务器上未启用目录浏览

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

我最近刚刚尝试将我的node.js应用程序部署到azure应用程序服务,但是当我尝试加载“/”路由时,它显示“您无权查看此目录或页面”。 。当我检查日志流是否有错误时,它显示:

“未为请求的 URL 配置默认文档,并且服务器上未启用目录浏览。您可以尝试以下操作: 如果您不想启用目录浏览,请确保默认 文档已配置并且该文件存在。启用目录 使用 IIS 管理器进行浏览。打开 IIS 管理器。在功能视图中, 双击目录浏览。在“目录浏览”页面上, 在操作窗格中,单击启用。验证 配置/system.webServer/directoryBrowse@enabled 属性是 在站点或应用程序配置文件中设置为 true”

我不明白为什么它说未配置默认文档。我的express.js 应用程序通过渲染登录视图来处理“/”路由。所以不需要有默认文档。

node.js azure express azure-web-app-service
1个回答
0
投票

将应用程序部署到 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>

这是本地输出:

enter image description here

创建 Web 应用程序时,选择操作系统为 linuxenter image description here

对于部署,

在 Visual Studio Code 中选择任务栏上的 Azure 徽标以打开 Azure 窗口。

步骤如下:

1.选择您的 Azure 订阅。

2.然后,选择您创建的网络应用程序

3.右键单击网络应用程序

  1. 在这里您将看到部署到 Web 应用程序选项。

enter image description here

enter image description here

要在浏览器中查看网站,请右键单击项目并选择 浏览站点

enter image description here

这是输出:

enter image description here

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