我现在正在通过 Node JS 和 IIS 开发一个网站。 在内部IP中,我试图确保可以从外部IP访问运行没有问题的网站。 我已经拥有一个 IP,因此我想通过在该站点中添加应用程序来使其可访问。 但是,在 localhost 上,当将连接的文件添加到外部站点上的应用程序时,会出现 404 错误。 如果您能告诉我如何解决它,我将不胜感激
我修改了index.js 文件以确保它有效。但即使这个文件也有 404 错误。
index.js:
const express = require('express');
const { user } = require('./dbconfig');
const app = express() ;
const PORT = process.env.PORT || 80;
const pool = require('./sql');
const path = require('path');
app.set('view engine','ejs');
app.engine('html',require('ejs').renderFile);
app.set('views',path.join(__dirname,'/views'));
app.use(express.urlencoded({ extended: true}));
app.use(express.static(path.join(__dirname,'uploads')))
app.use(express.static(path.join(__dirname,'/views')))
app.get('/',async(req,res) =>{
res.send('just do it');
});
app.listen(PORT, () => {
console.log(`Server on = http://localhost:${PORT}/`);
});
web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers accessPolicy="Read, Script">
<add name="iisnode" path="index.js" verb="*" modules="iisnode" requireAccess="Script" />
</handlers>
<iisnode watchedFiles=".js;node_modules\*;routes\*.js;views\*.jade" nodeProcessCommandLine="C:\program Files\nodejs\node.exe" />
<rewrite>
<rules>
<rule name="SendToNode" enabled="true">
<match url="/*" />
<action type="Rewrite" url="index.js" />
</rule>
</rules>
</rewrite>
<httpRedirect enabled="false" destination="" />
<staticContent>
<mimeMap fileExtension=".ejs" mimeType="text/html" />
</staticContent>
</system.webServer>
</configuration>
这是我的 IIS 列表。 TS_AS 应用程序返回 404 错误
我添加我的 applicationHost.config 标签
<sites>
<site name="Default Web Site" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
</application>
<application path="/--------" applicationPool="DefaultAppPool">
<virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\--------" />
</application>
<application path="/TS_AS" applicationPool="DefaultAppPool">
<virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\TS_AS" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:" />
</bindings>
</site>
<site name="test" id="3" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\TS_AS" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:8080:" />
</bindings>
</site>
</sites>
我是一个菜鸟程序员,所以很抱歉我不能很好地解释问题
将此设置部署到本地主机站点(测试)时,屏幕显示没有任何问题。
我自己解决了我的问题。感谢您对我的问题发表评论
问题是获取请求地址
app.get('/TS_AS/',async(req,res) =>{
res.send('just do it');
});
我必须在 GET 地址前面添加我的应用程序目录