【发布时间】:2014-06-18 13:04:20
【问题描述】:
我有一个位于以下 URI 的自托管服务:
const string listeningOn = "http://*:80/PassengerTracker/";
注意:我想将它托管在/PassengerTracker。这是最好的方法吗?
我启用了 Razor 视图,并在 _Layout.cshtml 文件中为我的 CSS 静态文件指定了 URL:
<link href="@Url.Content("~/Content/bootstrap.min.css")" rel="stylesheet" />
但是,这会返回 404。我已将 Copy to Ouput Directory 设置为 Copy Always
编辑
如果我尝试:
<link href="@(Request.GetApplicationUrl()
+ "/Content/bootstrap.min.css")" rel="stylesheet" />
我收到了NotImplementedException..
如果我将listeningOn 更改为http://*:80/。我可以使用@Url.Content 很好。
编辑 2
我根据下面的@Scott 评论尝试了以下操作:
<link href="@(AppHost.Config.ServiceStackHandlerFactoryPath
+ "/Content/bootstrap.min.css")" rel=" stylesheet" />
但它返回一个 404:
GET http://localhost:8090/passengertracker/PassengerTracker/Content/bootstrap.min.css
404
我注意到它把PassengerTracker 放了两次?
【问题讨论】:
-
查看
<link href="@Url.Content("~/Content/bootstrap.min.css")" ... >的输出源时,链接产生的Url是什么?您是否告诉 ServiceStack 处理程序路径在哪里SetConfig(new EndpointHostConfig { ServiceStackHandlerFactoryPath = "/PassengerTracker" });? -
是的,我设置了工厂路径,URL 是:
http://localhost/Content/bootstrap.min.css -
而不是
Request.GetApplicationUrl()你可以试试GetAppHost().Config.ServiceStackHandlerFactoryPath所以它是<link href="@(GetAppHost().Config.ServiceStackHandlerFactoryPath + "/Content/bootstrap.min.css")" rel="stylesheet" /> -
嘿,抱歉正在通勤回家,给我 2 分钟.. 我将创建一个复制品并进行测试! :)
-
我已经通过更新编辑了我的问题
标签: c# razor servicestack servicestack-bsd