Ich möchte Nuxt in IIS bereitstellen. Ich verwende IIS Node, aber ich kann es nicht zum Laufen bringen...
Ordner
Ich kann es mit npm run start auf meinem Server ausführen, aber ich habe andere Projekte wie admin und api (.net) und es verwendet Port 80. Wenn ich also Port 80 verwende, ist es beschäftigt, während es in IIS mit diesem Strukturordner
funktioniert IIS
das ist mein code in web.config
<?xml version="1.0" encoding="utf-8"?>
<!--
This configuration file is required if iisnode is used to run node processes behind
IIS or IIS Express. For more information, visit:
https://github.com/tjanczuk/iisnode/blob/master/src/samples/configuration/web.config
-->
<configuration>
<system.webServer>
<!-- Visit http://blogs.msdn.com/b/windowsazure/archive/2013/11/14/introduction-to-websockets-on-windows-azure-web-sites.aspx for more information on WebSocket support -->
<webSocket enabled="false" />
<handlers>
<!-- Indicates that the server.js file is a node.js site to be handled by the iisnode module -->
<add name="iisnode" path="nuxt.config.js" verb="*" modules="iisnode"/>
</handlers>
<rewrite>
<rules>
<!-- Do not interfere with requests for node-inspector debugging -->
<rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^nuxt.config.js\/debug[\/]?" />
</rule>
<!-- <rule name="Redirect to https" stopProcessing="true">
<match url="(.*)"/>
<conditions>
<add input="{HTTPS}" pattern="Off"/>
<add input="{REQUEST_METHOD}" pattern="^get$|^head$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}"/>
</rule> -->
<!-- First we consider whether the incoming URL matches a physical file in the /public folder -->
<rule name="StaticContent">
<action type="Rewrite" url="public{REQUEST_URI}"/>
</rule>
<!-- All other URLs are mapped to the node.js site entry point -->
<rule name="DynamicContent">
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
</conditions>
<action type="Rewrite" url="nuxt.config.js"/>
</rule>
</rules>
</rewrite>
<!-- 'bin' directory has no special meaning in node.js and apps can be placed in it -->
<security>
<requestFiltering>
<hiddenSegments>
<remove segment="bin"/>
</hiddenSegments>
</requestFiltering>
</security>
<!-- Make sure error responses are left untouched -->
<httpErrors existingResponse="PassThrough" />
<!--
You can control how Node is hosted within IIS using the following options:
* watchedFiles: semi-colon separated list of files that will be watched for changes to restart the server
* node_env: will be propagated to node as NODE_ENV environment variable
* debuggingEnabled - controls whether the built-in debugger is enabled
See https://github.com/tjanczuk/iisnode/blob/master/src/samples/configuration/web.config for a full list of options
-->
<!--<iisnode watchedFiles="web.config;*.js"/>-->
</system.webServer>
</configuration>
Ignorieren Sie nuxt.config.js, bevor ich server.js mit Express hatte, aber es hat nicht funktioniert, weil ich ES6 verwende und beim Versuch, nuxt.config auszuführen, ein Syntaxfehler aufgetreten ist
Lösung des Problems
1)Stellen Sie sicher, dass Sie den Knoten installieren.
https://nodejs.org/en/download/
2) Erstellen Sie die Nutx-App mit dem folgenden Befehl:
npm init nuxt-app testnu
3) Gehen Sie in den App-Ordner und führen Sie den folgenden Befehl aus, um die Site zu erstellen:
npm run generate
Dieser Befehl generiert den dist-Ordner in Ihrem App-Ordner.
4) Erstellen Sie eine Site in IIS und weisen Sie den dist-Ordnerpfad als Site-Pfad zu und weisen Sie die Site-Bindungsinformationen zu.
5) Vergessen Sie nicht, dem Site-Ordner die Berechtigung iis_iusrs und iusr zuzuweisen. (In meinem Fall ist der Site-Ordner testnu)
6) Aktualisieren und starten Sie die Site neu, nachdem Sie Änderungen vorgenommen haben, und durchsuchen Sie die Site.
Keine Kommentare:
Kommentar veröffentlichen