فرض کنیم یک پروژه فرانت-اند داریم که با استفاده از React یا یک کتابخانه/فریمورک جاوااسکریپتی دیگری پیاده سازی شده. حالا فرض کنیم که سرور ما از سیستم عامل ویندوز استفاده میکند و به طور پیش فرض وب سرورمان IIS است. در این حالت، راهاندازی وب سایت به سادگی یک وب سایت ASP.NET در IIS نیست، و کمی کار بیشتری میبرد. با خواندن این مطلب کوتاه با نحوه میزبانی یک پروژه React در IIS آشنا خواهید شد.
پیشنیازها
قبل از هر کاری، باید موارد زیر را در سرور نصب کنیم:
- URL rewrite
- iisnode
با نصب این مورد،node
به ماژولهای IIS اضافه میشود. - و طبیعتا نیاز است که خود
nodejs
را نصب کنیم.
تنظیمات IIS
بعد از این که سایت خود را در IIS ایجاد کردیم، کد بیلد شده را در پوشهای که مشخص کردیم قرار میدهیم. اگر پروژه React باشد احتمالا شامل فایلها و پوشههای شبیه public، index.html و … است.
خب، حالا ماژولهای سایت را در IIS چک میکنیم تا از وجود iisnode مطمئن شویم. اگر ردیف iisnode در ماژولها نبود میتوان آن را به صورت دستی اضافه کرد، یا میتوانیم دوباره اقدام به نصب iisnode کنیم.
همچنین، نیاز به یک فایل web.config
در پوشه اصلی سایت داریم که محتوای آن شامل کد زیر خواهد بود:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="nodejs" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
<security>
<requestFiltering>
<hiddenSegments>
<add segment="node_modules" />
<add segment="iisnode" />
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
</configuration>
تمام!
حالا میتوانیم از طریق یک مرورگر از این که سایت کار میکند مطمئن شویم.
مطالب مرتبط
من از طریق صفحات زیر با موضوع آشنا شدم:
- https://stackoverflow.com/a/54163476/3144631
- https://dev.to/sumitkharche/how-to-deploy-react-application-on-iis-server-1ied
و همچنین چند صفحه دیگر که آدرسشان را فراموش کردهام.
با شادی به کدنویسی ادامه بدهید. 🙂
دیدگاهتان را بنویسید