如何从自托管ServiceStack提供.less和其他文件类型?

时间:2013-10-03 11:48:33

标签: .net servicestack

我有一个Web控制台,我正在使用ServiceStack的AppHostHttpListenerBase构建(即自托管)。

我想使用less.js所以我可以使用.less样式表,但是当对任何非.js,.css,.html等文件发出请求时,ServiceStack总是返回'Forbidden'。 / p>

我尝试在app.config中使用httpmodule处理路径“* .less”,但我不确定ServiceStack自托管是否完全解释了配置文件。

有没有办法配置ServiceStack来提供任意文件类型的静态内容?

1 个答案:

答案 0 :(得分: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修复它,因为它完美地工作在'link href =“blah.less”')