2013-10-03 17 views
1

我有一個Web控制檯,我使用ServiceStack的AppHostHttpListenerBase(即自我託管)構建。如何從自託管的ServiceStack提供.less和其他文件類型?

我想使用less.js,所以我可以使用.less樣式表,但是當對任何非.js,.css,.html等文件發出請求時,ServiceStack總是返回'Forbidden'。

我嘗試使用app.config中的httpmodule來處理路徑「* .less」,而不是我自己託管的ServiceStack完全解釋配置文件。

有沒有辦法配置ServiceStack來提供任意文件類型的靜態內容?

+0

我不明白你的問題。如果你的意思是HTML頁面,這個問題和答案是有幫助的[是否可以使用ServiceStack提供HTML頁面?](http://stackoverflow.com/questions/8199493/is-it-possible-to-serve-html-pages -with-servicestack) – stefan2410

+1

道歉,如果不清楚。這個問題編譯爲:「我如何從自託管的ServiceStack提供無文件?」 – Robin

+0

改變你寫的問題標題,所以你的問題會對其他人有用。很高興你解決它。 – stefan2410

回答

4

自己解決了這個問題。終極祕訣:在混淆SO社區之前用IntelliSense進行探索!

public override void Configure(Funq.Container container) 
{ 
    ServiceStack.Logging.LogManager.LogFactory = new ServiceStack.Logging.Support.Logging.ConsoleLogFactory(); 

    Plugins.Add(new ServiceStack.Razor.RazorFormat()); 

    var config = new EndpointHostConfig 
    { 
     CustomHttpHandlers = { 
      { System.Net.HttpStatusCode.NotFound, new ServiceStack.Razor.RazorHandler("/notfound") } 
     }, 
     EnableFeatures = Feature.All^Feature.Metadata 
    }; 
    config.AllowFileExtensions.Add("less"); 
    SetConfig(config); 
} 

AllowFileExtensions屬性是我想要的。在文件路徑中指向一個瀏覽器現在下載文件(我寧願在瀏覽器中查看它,按照css和js文件,我想這是在響應頭部控制的,但是我需要cba來修復它,因爲它可以很好地工作在'鏈接href =「blah.less」')

相關問題