繁体   English   中英

ASP.NET Core 2.1从另一个项目提供静态文件

[英]ASP.NET Core 2.1 Serve static files from another project

我正在尝试通过ASP.NET Core 2.1后端为API和Angular前端提供服务。 Startup.cs在项目MyApp.Api 我希望从另一个项目MyApp.FrontEnd的wwwroot中提取静态文件。

我看过这篇文章 ,描述了以下方法

app.UseStaticFiles(new StaticFileOptions {
    FileProvider = new EmbeddedFileProvider(
        assembly: Assembly.Load(new AssemblyName("OpenIddict.Assets")),
        baseNamespace: "OpenIddict.Assets")
});

但是,当我尝试用项目名称替换“ OpenIddicts.Assets”时,出现以下错误:

FTL应用程序启动异常System.IO.FileNotFoundException:无法加载文件或程序集“ MyApp.FrontEnd,文化=中性,PublicKeyToken =空”。 该系统找不到指定的文件。 文件名:“ MyApp.FrontEnd,文化=中性,PublicKeyToken =空”

上面链接的文章中引用的GitHub存储库似乎不再存在。 我认为我在某个明显的地方不见了。 任何帮助,将不胜感激。

MyApp.FrontEnd.dll必须存在于输出文件夹中。 如果您发布主项目(引用了MyApp.FrontEnd ),那么一切都会正常。

如果您可以从程序集访问某些类型,则可以尝试Assembly.GetAssembly(type)而不是Assembly.Load(...) ,即

app.UseStaticFiles(new StaticFileOptions {
    FileProvider = new EmbeddedFileProvider(
        assembly: Assembly.GetAssembly(typeof(SomeClassFromAssembly)),
        baseNamespace: "OpenIddict.Assets")
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM