ServiceStack如何识别新添加的文件夹
本文关键字:文件夹 添加 新添加 识别 何识别 ServiceStack | 更新日期: 2023-09-27 18:26:27
在我的应用程序中,每当使用代码创建新的托管客户端时,我都会将一个新文件夹和一组文件放入我的目录
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创建顶级文件和目录的静态缓存,该缓存存储在专用静态HttpHandlerFactory.WebHostRootFileNames
中(小写)。
一种方法是使用Reflection将新的顶级myclient
文件夹添加到私有集合中。另一种方法是在现有的顶级文件夹下上传文件/文件夹,例如:
/clients/MyClient
嵌套的文件/文件夹未缓存,因此可以在AppDomain启动后添加和访问。