我们一直致力于为前端使用SPA的大型项目。 我们要求应用程序必须是模块化的,这意味着我们可以向不同的客户销售不同的模块。 我们一直在努力寻找项目的最佳方法。
我们选择这种方法: 一个具有通用功能和每个模块的Web应用程序 - 一个类库(包)。 但我们有静态文件的问题。我们无法将Main WebApp配置为在不同位置查找静态文件。
我们试试这个:
app.UseStaticFiles(new StaticFileOptions()
{
FileProvider = new EmbeddedFileProvider(webModuleAssembly),
RequestPath = new PathString("/Module1")
}
但它没有用。
我们无法找到该案例的例子。 (我们使用ASP.Net 5,MVC 6-beta 8)
有人建议我们如何解决这个问题,或者你建议采用另一种方法。
更多信息:每个模块可能包含大量文件,包括帮助页面,本地化,图像等。
PS。我们讨论了在主WebApp中为每个模块创建文件夹的解决方案。但有时我们需要一些控制器(mvc / web api)来支持客户端。 - 如果我们将它们放在一个项目中,我们必须将它们安装到没有购买它的客户端。 - 如果我们只将MVC / WEB API控制器分离到类库,我们将遇到维护代码问题。 当我说MVC / WEB API控制器时,我只讨论一些支持特定客户端操作的控制器 - 我们有不同的WebApi项目来实现业务逻辑。
答案 0 :(得分:0)
这里的真正优势是在您的应用启动并运行后跟踪新插件。
最好的办法是为所有插件提供一个基本文件夹(例如:wwwroot / Modules)。插件应该在那里工作(加载)。
之后,我建议根据原始实施Example from elsewhere on Stack Overflow I am following创建@RequestMapping
的自定义实施,其中:
StaticFileMiddleware
下)。使用基于wwwroot/Modules
的自定义FileProvider
还可以隐藏路径元素。例如:您可以使用“/Billing/Views/something.html”代替浏览“/Modules/Billing/Views/something.html”。