我有点问题。css和.js文件我的网站,当我尝试打开我的托管网站。我的网站是下一个js应用程序,托管在IIS服务器上。请注意,我不是一个JavaScript开发人员,这是我第一次部署Next.js应用程序)。
请求看起来像这样:Site requests
单个请求看起来像这样:Single one request
当我部署到IIS时,我配置了以下Web。配置和服务器。js。
web.config:
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="*" />
<add name="Access-Control-Allow-Headers" value="*" />
</customHeaders>
</httpProtocol>
<webSocket enabled="false" />
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode"/>
</handlers>
<rewrite>
<rules>
<rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^server.js\/debug[\/]?" />
</rule>
<rule name="StaticContent">
<action type="Rewrite" url=".next/static"/>
</rule>
<rule name="DynamicContent">
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
</conditions>
<action type="Rewrite" url="server.js"/>
</rule>
</rules>
</rewrite>
<security>
<requestFiltering>
<hiddenSegments>
<add segment="node_modules"/>
</hiddenSegments>
</requestFiltering>
</security>
<httpErrors existingResponse="PassThrough" />
<iisnode
watchedFiles="web.config;*.js;node_modules\*;"
node_env="production"
/>
</system.webServer>
</configuration>
server.js:
const { createServer } = require('http')
const { parse } = require('url')
const next = require('next')
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()
app.prepare().then(() => {
createServer((req, res) => {
const parsedUrl = parse(req.url, true)
handle(req, res, parsedUrl)
}).listen(process.env.PORT || 8000, (err) => {
if (err) throw err
console.log('> Ready on ')
})
})
在我看来,这个问题与静态文件的可用性有关,但我不明白如何正确配置它们。
1条答案
按热度按时间sgtfey8w1#
出现404的原因有很多。如果这是你第一次部署下一个js应用程序的经验。关于在IIS中部署Next Js项目,可以参考这个答案。它需要NodeJS,URLRewrite和IISNode在您的服务器上。
链接:https://stackoverflow.com/a/67212396/20058276
重要的是,iisnode在很长一段时间内不需要维护。您可以尝试使用HttpPlatformHandler。https://halfblood.pro/running-nodejs-web-apps-on-iis-with-httpplatformhandler/。
本教程文档来自Lex Li。也许这篇文章可以提供更好的帮助。