/ / Nuxt.js trasy vracajúce 404 v IIS s IISNODE - expresné, iis, vue.js, iisnode, nuxt.js

Trasy Nuxt.js vracajúce 404 do IIS s IISNODE - express, iis, vue.js, iisnode, nuxt.js

Len sa snažím hostiť demo nuxt.js a express.js v iis s iisnode. Dostávam 404 rokov pre trasy nuxtovej stránky, ale expresné trasy api fungujú dobre.

Všetko, čo nuxt robí, je všetko, čo zvláda jeho trasy. Nie ste si istí, prečo to nefunguje.

Nastavil som svoj web.config pomocou obsluhy iisnode a tiež som zahrnul konfiguráciu na prepísanie adresy URL na smerovanie všetkého na server.prod.js

"use strict";

var Nuxt = require("nuxt");
var app = require("express")();
var host = process.env.HOST || "127.0.0.1";
var port = process.env.PORT || 3000;

app.set("port", port);
// Import API Routes
app.use("/api", require("./api/index"));

// Import and Set Nuxt.js options
var config = require("./nuxt.config.js");
config.dev = !(process.env.NODE_ENV === "production");

// Init Nuxt.js
var nuxt = new Nuxt(config);
app.use(nuxt.render);

// Build only in dev mode
if (config.dev) {
nuxt.build().catch(function (error) {
console.error(error); // eslint-disable-line no-console
process.exit(1);
});
}

// Listen the server
app.listen(port, host);
console.log("Server listening on " + host + ":" + port); // eslint-disable-line no-console
<configuration>
<system.webServer>
<handlers><add name="iisnode" path="server.prod.js" verb="*" modules="iisnode" /></handlers>
<rewrite>
<rules>
<rule name="myapp">
<match url="/*" />
<action type="Rewrite" url="server.prod.js" />
</rule>
<!-- Don"t interfere with requests for node-inspector debugging -->
<rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^app.js/debug[/]?" />
</rule>

</rules>

</rewrite>
<directoryBrowse enabled="true" />

<iisnode devErrorsEnabled="true" debuggingEnabled="true" loggingEnabled="true" nodeProcessCommandLine="C:Program Filesnodejsnode.exe" />

<!-- exclude node_modules directory and subdirectories from serving
by IIS since these are implementation details of node.js applications -->

<security>
<requestFiltering>
<hiddenSegments>
<add segment="node_modules" />
</hiddenSegments>
</requestFiltering>
</security>

</system.webServer>
</configuration>

odpovede:

0 pre odpoveď č. 1

Uzol IIS používa pomenované kanály, a preto server vykresľuje hovory api na portu 80 hostiteľa tcp portu 80 ... Na strane servera je potrebná úplná adresa URL, aby mohla fungovať.