2013-01-02 25 views
5

Pracuję ze starszym plikiem swf, który szuka w routerze sterownika/działania dla statycznej trasy. Na przykład, próbuje pobrać plikPlik statyczny routingu MVC

http://localhost:59801/Resource/Details/ClearExternalPlaySeekMute.swf 

Gdy istnieje plik w katalogu głównym:

http://localhost:59801/ClearExternalPlaySeekMute.swf 

mogę wykorzystać MapRoute do mapowania adresu URL do katalogu głównego?

Odpowiedz

1

To powinno działać dla ciebie, ale myślę, że byłoby lepiej dzięki IIS.

routes.IgnoreRoute("{file}.swf");

pamiętam tak słupek, który był naprawdę dobry. Jeśli ją znajdę, na pewno się odezwę.

Zasadniczo to samo pytanie ... Using ASP.NET routing to serve static files

+0

Zamiast po prostu zignorować ścieżkę do pliku, faktycznie muszę ponownie skierować tę zawartość do katalogu głównego. Adres URL jest zakodowany w pliku SWF. – user547794

+0

Ta odpowiedź jest poprawna, ale myślę, że twoim większym problemem jest to, że używasz definicji catch all route, która jest dostarczana z ASP.NET MVC, której nie powinieneś. Należy dokładniej określać trasy, aby statyczne pliki były dostarczane niezależnie i nie trafiały w trasy. –

2

Można użyć modułu url rewrite w IIS. Po zainstalowaniu go po prostu dodać następującą regułę przepisywania:

<system.webServer> 
    <rewrite> 
     <rules> 
     <rule name="Rewrite Static Flash file" stopProcessing="true"> 
      <match url="^Resource/Details/ClearExternalPlaySeekMute.swf$" /> 
      <action type="Rewrite" url="ClearExternalPlaySeekMute.swf" /> 
     </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 

Teraz, gdy został złożony wniosek do /Resource/Details/ClearExternalPlaySeekMute.swf będzie służył przez /ClearExternalPlaySeekMute.swf.

+0

Zrobiłem to, ale co z tym, kiedy debuguję lokalnie w/IIS Express? – user547794

+0

Ponieważ ekspres IIS używa tych samych plików binarnych IIS (i większości funkcji pełnego iis), można użyć adresu URL przepisania –

+0

Przepis na adres URL jest wbudowany w IIS Express - więc nie ma absolutnie nic, co trzeba zrobić, aby działało to w IIS Express (inne niż umieszczenie sekcji, którą pokazałem ci w twoim web.config). W przypadku IIS należy zainstalować moduł Urr Rewrite. Ale to jest tak proste, jak włączenie funkcji w menedżerze serwera. –

Powiązane problemy