SORU
27 EYLÜL 2012, PERŞEMBE


Nasıl URL HTML5 modunda AngularJS uygulaması için IIS Yeniden yapılandırabilirim?

AngularJS seed project ben ekledim

$locationProvider.html5Mode(true).hashPrefix('!');

app.js dosya için. Rota için IIS 7 için tüm istekleri yapılandırmak istiyorum

http://localhost/app/index.html

bu benim için çalışıyor. Bunu nasıl yapabilirim?

Güncelleme:

Sadece, indirilen ve ** 15, umut bu kolay ve açık benim hedefe ulaşmak için yapacaktır yüklü keşfettim.

Güncelleme 2:

Bunu başarmak için çalışıyorum ne (AngularJS Developer documentation alınan) özetliyor sanırım:

Bu modu kullanarak sunucu tarafında yeniden yazma,URL gerektirir giriş için tüm bağlantıları yeniden yazacaksın temelde noktası uygulama (örneğin index.html)

Güncelleme 3:

Hala bunun üzerinde çalışıyorum ve (yeniden yazan kurallar var) belirli bir URL olarak yönlendirmek istiyorum farkındayım

http://localhost/app/lib/angular/angular.js
http://localhost/app/partials/partial1.html

css bir şey, js, lib ya da şiddetli dizinleri yönlendirilen değil. Diğer her şey app/index.html yönlendirilmek gerekir

Herkes bu kolayca her dosya için bir kural eklemek zorunda kalmadan elde etmek için nasıl biliyor?

Güncelleme 4:

2 gelen kuralları IIS URL Yeniden yazma modülü içinde tanımlanan var. İlk kural:

IIS URL Rewrite Inbound Rule 1

İkinci kural:

IIS URL Rewrite Inbound Rule 2

Şimdi ben gitmek için localhost/app/view1 yükler sayfa, ancak destekleyici dosyalar (olanlar css, js, lib ve parçaları dizinler) da yazılmış olmak için app/index.html sayfa - her şey geri dönüyor gibi index.html sayfa ne olursa olsun URL kullanılır. Bu ikinci kuralda, işlenmekte olan bu URL önlemek için gereken ilk kural, herhangi bir fikir.. işe yaramıyor demek? ...isteyen? ...Kendimi çok yalnız hissediyorum... :-(

CEVAP
1 EKİM 2014, ÇARŞAMBA


Web bir kural yazıyorum.$locationProvider.html5Mode(true) sonra config app.js olarak ayarlanmıştır.

Umarım birileri yardımcı olur.

  <system.webServer>
    <rewrite>
      <rules>
        <rule name="AngularJS Routes" 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>
  </system.webServer>

Benim index.html <head> bunu ekledim

<base href="/">

Sunucuda IIS URL Rewrite yüklemek için unutma.

Ayrıca Web API ve IIS kullanıyorsanız, bu sizin API üçüncü giriş (koşul üçüncü satır) www.yourdomain.com/api ise çalışacaktır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Derek Banas

    Derek Banas

    12 AĞUSTOS 2008
  • Howard Pinsky

    Howard Pinsk

    6 AĞUSTOS 2006
  • ShayLoss

    ShayLoss

    5 Kasım 2009