W przypadku ktoś natknie to pytanie w Google i miał problemy z web.config próbki wymienionego w przyjętym rozwiązaniem ...
Jest to plik web.config, który pracował dla mnie:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="server/app.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="LogFile" patternSyntax="ECMAScript" stopProcessing="true">
<match url="iisnode" />
</rule>
<rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^server\/app.js\/debug[\/]?" />
</rule>
<rule name="StaticContent" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" />
<action type="Rewrite" url="public/{C:1}" logRewrittenUrl="true" />
<conditions>
<add input="{REQUEST_URI}" pattern=".*?virtualpath\/(.*)" />
</conditions>
</rule>
<rule name="DynamicContent" patternSyntax="ECMAScript">
<match url=".*" />
<conditions>
<add input="{{REQUEST_FILENAME}}" matchType="IsFile" negate="True" />
</conditions>
<action type="Rewrite" url="server/app.js" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
<security>
<requestFiltering>
<hiddenSegments>
<add segment="node_modules" />
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
</configuration>
Moja struktura folderów jest:
- ścieżka_wirtualna/- odnosi się do IIS skonfigurowanych Virtual Path
- publicznej/- zawiera statyczny
- Server/- zawiera pliki aplikacji serwerowych
Dzięki za odpowiedź. Jaki powinien być format ścieżki względnej, która zostanie określona podczas odwoływania się do pliku skryptu w pliku HTML po zastosowaniu przepisania? –
To samo, co w przypadku, gdy plik web.config był całkowicie nieobecny i zastosowano domyślne reguły IIS (w tym nieznajomość serwera server.js jako aplikacji Node.js). Reguła zawartości statycznej nie zmienia adresu URL, po prostu zapobiega przechwytywaniu przez program obsługi iisnode. –
Po prostu potwierdzenie, więc względna ścieżka statycznego pliku JavaScript to /appname/public/scripts/main.js. Popraw mnie, jeśli nigdzie się nie mylę. –