美文网首页
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