13

chciałbym mieć zdefiniować wiązkę tak:Czy istnieje sposób na rozszerzenie pliku w nazwie pakietu?

bundles.Add(
    new StyleBundle("~/style.css").Include(
     //... 
)); 

Jeśli nazwa pakiet jest właśnie "~/style" to działa, ale z rozszerzeniem zawsze zwraca 404. Podejrzewam serwer szuka CSS i JS pliki na dysku i ignoruje system pakujący, ale nie mogę znaleźć nikogo, kto próbuje dołączyć rozszerzenia plików w nazwach pakietów. Czy można to zrobić bez czegoś w stylu przepisywania adresu URL?

Odpowiedz

19

Można dodać następujące sekcji <system.webServer> w web.config:

<modules runAllManagedModulesForAllRequests="true" /> 

To zapewni, że wnioski dotyczące zasobów statycznych takich jak .js i .css przejdzie przez zarządzanych modułów i zostać przechwycone przez ASP. NET MVC.

Jako alternatywę dla włączania runAllManagedModulesForAllRequests dla wszystkich żądań można skonfigurować je tylko dla adresów URL, których należy użyć. Tak więc wewnątrz <handlers> dodać:

+3

Hmm, czy istnieje mniej drastyczne rozwiązanie, które dotyczy tylko plików .js i .css? – sbking

+0

Oczywiście, zobacz moją zaktualizowaną odpowiedź. –

+1

+1, ale posiadanie 'path =" *. Bundle.js "' uniemożliwi uruchomienie programu obsługi dla prawdziwych plików. –

Powiązane problemy