美文网首页
Asp.Net Core访问嵌入的静态文件

Asp.Net Core访问嵌入的静态文件

作者: 寻找无名的特质 | 来源:发表于2020-12-08 06:16 被阅读0次

如果要让引用的静态资源可以访问,需要在Startup的Configure中进行如下配置:

app.UseStaticFiles();

这时wwwroot中的静态文件可以被访问。但如果我们编写了一个Razor类库,采用Application Part的方式加载到应用中,这个模块中嵌入的静态资源如何访问呢?这就需要使用EmbeddedFileProvider。假设我们的Razor类库的名称为MyWebPart,这个类库中的静态资源保存在wwwroot目录下:


图片.png

我们希望上图中的mystyle.css可以通过Url访问:/MyWebPart/css/mystyle.css。代码如下:

            app.UseStaticFiles();

            String basePath2 = System.IO.Path.GetDirectoryName(typeof(Program).Assembly.Location);
            var mypath = System.IO.Path.Combine(basePath2, "Addins\\MyWebPart\\MyWebPart.dll");

            var myPlugin = System.Runtime.Loader.AssemblyLoadContext.Default
             .LoadFromAssemblyPath(mypath);
            var personEmbeddedFileProvider = new EmbeddedFileProvider(
                myPlugin,
                "MyWebPart.wwwroot"
                );
            app.UseStaticFiles(new StaticFileOptions
            {
                FileProvider = personEmbeddedFileProvider,
                RequestPath = new PathString("/MyWebPart")
            });

编译好的动态库放在Addins\MyWebPart目录下,这种情况下,宿主项目不需要引用MyWebPart。

相关文章

网友评论

      本文标题:Asp.Net Core访问嵌入的静态文件

      本文链接:https://www.haomeiwen.com/subject/pxamwktx.html