我有一个 node js 网站,我正在使用 Visual Studio 代码将其部署到 azure 服务器。以下是我在 server.js 上的代码
var express =require('express');
var bodyParser=require("body-parser")
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
var nodemailer = require("nodemailer");
var port=process.env.PORT || 3000;
app.use(express.static(__dirname + '/public'));
app.get('/',function(req,res){
console.log('hello from server');
res.render('./public/index.html');
});
我将该网站部署到一个 azure 应用服务,并且该 url 总是希望将 index.html 添加到它以工作。例如 https://abc.azurewebsites.net 不起作用,但 https://abc.azurewebsites.net/index.html 起作用。如何从 url 中删除 index.html?
我的 azure 文件夹结构是 site/wwwroot/public/all html 文件。
任何人都可以提出解决方案
答案 0 :(得分:0)
更新:
web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<webSocket enabled="false" />
<rewrite>
<rules>
<rule name="DynamicContent">
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
</conditions>
<action type="Rewrite" url="public/index.html"/>
</rule>
</rules>
</rewrite>
<security>
<requestFiltering>
<hiddenSegments>
<remove segment="bin"/>
</hiddenSegments>
</requestFiltering>
</security>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
</configuration>
原答案:
只需在根目录('/site/wwwroot')中添加一个名为.htaccess
的文件,文件内容如下:
DirectoryIndex public/index.html
之后,您的网络应用程序的默认值将更改为“public/index.html”。