Kendime notlar...

4/13/2018

Angular 2+ projeleri IIS ile yayına almak


Yazdığım bir angular projesini ilk kez kendim yayına alayım dedim. Yayına alırkende IIS kullandım. Ancak yayına aldığımda anasayfa dşındaki sayfalara direkt gitmek istediğimde ya da o sayfalar gittikten sonra sayfayı yenilediğimde IIS nin 404 sayfası çıkıyordu.

Bu sorunu çözmek için epeyce araştırdım. Sanırım takıldığım nokta IIS nin eski versiyonlarında varsayılan olarak kurulu geldiğini düşündüğüm eklentinin benim kullandığım IIS versiyonunda kurulu olmamasıydı.

Öncelikle IIS için "URL Rewrite" eklentisini kurmanız gerekiyor.
https://www.iis.net/downloads/microsoft/url-rewrite

sonrasında işaretli ikonun IIS de gözükmeye başlamış olması gerek. Bu ikon halihazırda varsa bu adımı atlayarak ikinci adımla devam edebilirsiniz.

Projenin dizinine web.config dosyası eklemek.
Eklentiyi kurduk ama IIS ye ne şekilde davranmasını istediğimizi belirten bir kural eklemeliyiz.
Bunun için bir web.config dosyası oluşturun ve içine :


<configuration>
    <system.webServer>
        <rewrite>
          <rules>
            <rule name="Main Rule" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>


kodlarını ekleyin. Bu kadar. Her ihtimale karşı projenizi restart edebilirsiniz. Artık direk herhangi bir url e gidebilecek ve sayfayı yenilediğinizde herhangi bir sorunlar karşılaşmayacaksınız.

İyi çalışmalar.

0 comments: