/ / minimal azure node.js config служить .js файлам як звичайний текст замість їх обробки - node.js, iis, azure, iisnode

Мінімальний Azure node.js config подає файли .js як звичайний текст замість обробки їх - node.js, iis, azure, iisnode

Я хочу налаштувати azure "веб-сайт" послугу для використання web.config власного (краще управління журналом). Я створив простий web.config в корені мого git розгортання node.js проект:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="srcserver.js" verb="*" modules="iisnode"/>
</handlers>
</system.webServer>
</configuration>

Після того, як я розгортаю та переглядаю веб-сайт azure, він показує мені вміст srcserver.js замість того, щоб обробляти його як iisnode додаток :( Я знаю, що це якась дурна помилка, але гуглінг цього виходить напрочуд болючим - усі мої пошукові заклинання до "простого тексту" відбиваються незліченними статтями "як сервер статичного вмісту через iisnode" :(. І вивчаю всі iis / iisnode /web.config обладнання з нуля - це щось надмірне для мого простого завдання. Будь-які підказки, що додати до цього web.config так iis буде обробляти server.js як iisnode сценарій, а не як звичайний текст?

Оновити

Вивчаючи сховище node.js, створене за допомогою майстра лазуриту, я зрозумів, що проблема виникає лише в тому випадку, якщо server.js знаходиться знаходиться src підкаталог. Якщо він знаходиться в кореневому каталозі, все працює добре. Будь-які натяки на те, чому така поведінка iisnode? Я хочу підкаталоги :(. Будь-яка документація про те, що вони не дозволені?

Відповіді:

3 для відповіді № 1

Я вважаю, що вам потрібно додати rewrite правити своїм web.config. Модуль IISNode покладається на модуль перезапису URL-адреси IIS для маршрутизації запитів до вашої програми NodeJS.

<rewrite>
<rules>
<rule name="iisnode">
<match url="src/*" />
<action type="Rewrite" url="server.js" />
</rule>
</rules>
</rewrite>

Джерела