[英]ServiceStack: Self-Host Not finding static files
我有一个位于以下URI的自助服务:
const string listeningOn = "http://*:80/PassengerTracker/";
注意 :我想将其托管在/PassengerTracker
。 这是最好的方法吗?
我启用了Razor视图,并且在_Layout.cshtml
文件中为CSS静态文件指定了URL,如下_Layout.cshtml
:
<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
很好。
我按照下面的@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
?
在聊天讨论中,ServiceStack的静态文件处理程序似乎存在问题,因此您可以创建一个简单的服务,该服务本质上执行相同的任务并提供Content
目录中的文件。
[Route("/content/{filePath*}", "GET")]
public class ContentRequest : IReturnVoid
{
public string filePath { get; set; }
}
public class ContentService : Service
{
public void Get(ContentRequest request)
{
var fullPath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "Content", request.filePath);
Response.WriteFile(fullPath);
Response.End();
}
}
我希望这对您有用:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.