C# ServiceStack如何识别新添加的文件夹?
在我的应用程序中,每当使用以下代码创建新的托管客户端时,我都会将一个新文件夹和一组文件放到我的目录中:C# ServiceStack如何识别新添加的文件夹?,c#,
servicestack,servicestack-razor,C#,
servicestack,Servicestack Razor,在我的应用程序中,每当使用以下代码创建新的托管客户端时,我都会将一个新文件夹和一组文件放到我的目录中: Directory.CreateDirectory("MyClient", ...); file.CopyTo("MyClient", ...); 文件夹如下例所示: -www.MyDomain.com/MyClient -www.MyDomain.com/MyClient/Default.cshtml -www.MyDomain.com/MyClient/js/default.js -ww
Directory.CreateDirectory("MyClient", ...);
file.CopyTo("MyClient", ...);
文件夹如下例所示:
-www.MyDomain.com/MyClient
-www.MyDomain.com/MyClient/Default.cshtml
-www.MyDomain.com/MyClient/js/default.js
-www.MyDomain.com/MyClient/img/default.png
……等等
现在,如果您访问MyClient
路径,您会希望它加载Default.cshtml
,但是您会得到一个404页面未找到。在重新启动主机之前,如果再次访问同一路径,您将获得正确的Default.cshtml
页面内容
如果我理解正确,SS仅在启动时构建mvc文件夹路径,那么它不会自动添加新文件夹,直到您重新启动主机
有没有办法让SS知道文件夹结构的变化?ServiceStack创建一个顶级文件和目录的静态缓存,该文件和目录存储在私有静态文件库中。WebHostRootFileNames(小写) 一种方法是使用反射将新的顶级
myclient
文件夹添加到私有集合中。另一种方法是在现有顶级文件夹下上载文件/文件夹,例如:
/clients/MyClient
嵌套的文件/文件夹不会缓存,因此可以在AppDomain启动后添加和访问。您要删除哪种类型的文件,静态文件?否则,您可能必须配置正确的route@LukeHutton,请参阅修改。它们是模板文件夹中的文件,我使用代码复制它们,并在创建该客户机时自动将它们放入相应的“MyClient”文件夹中。WebHostRootFileNames是静态只读列表,但嵌套的文件和文件夹不是,这有什么原因吗?根级别不能动态创建吗?很想知道。@Tom会缓存顶级文件/文件夹,以便快速查找,并验证请求是针对物理文件/文件夹还是针对服务的路由。