我在windows服务器上启动了一个next.js电子商务项目 我在下一个应用程序的根目录中创建了一个 server.js 和 web.config 文件 文件的内容基于我在 Internet 上的 Windows 服务器上启动下一个应用程序的发现。
server.js
const { createServer } = require("http");
const { parse } = require("url");
const next = require("next");
const dev = process.env.NODE_ENV !== "production";
const port = process.env.PORT || 3000;
const app = next({ dev });
const handle = app.getRequestHandler();
app.prepare().then(() => {
createServer((req, res) => {
// Be sure to pass `true` as the second argument to `url.parse`.
// This tells it to parse the query portion of the URL.
const parsedUrl = parse(req.url, true);
const { pathname, query } = parsedUrl;
if (pathname === "/a") {
app.render(req, res, "/a", query);
} else if (pathname === "/b") {
app.render(req, res, "/b", query);
} else {
handle(req, res, parsedUrl);
}
}).listen(port, (err) => {
if (err) throw err;
console.log(`> Ready on http://localhost:${port}`);
});
});
web.config
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="myapp">
<match url="/*" />
<action type="Rewrite" url="server.js" />
</rule>
</rules>
</rewrite>
<iisnode node_env="production" nodeProcessCommandLine=""C:\Program Files\nodejs\node.exe"" interceptor=""%programfiles%\iisnode\interceptor.js"" />
</system.webServer>
<location path="" overrideMode="Deny">
<system.webServer>
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode" />
</handlers>
</system.webServer>
</location>
</configuration>
在开发模式下,404.tsx 和 500.tsx 页面正在运行。 在生产模式下,在 Windows 服务器上部署项目时
当你导航到不存在的页面时 自定义404.tsx页面未显示,Windows服务器默认页面404页面出现
我应该在 web.config 中添加什么?
我在 web.config 中添加了一些规则,但没有用