从外部库提供静态文件

2023-12-22

我试图提供外部库内的静态文件。

我已经完成了控制器和视图的工作,但我无法从该库加载资源(javascript、图像等)。

这是我的 Startup.cs

    public void ConfigureServices(IServiceCollection services)
    {
    //...
    var personAssembly = typeof(PersonComponent.Program).GetTypeInfo().Assembly;
    var personEmbeddedFileProvider = new EmbeddedFileProvider(
          personAssembly,
          "PersonComponent"
       );

     services
       .AddMvc()
       .AddApplicationPart(personAssembly)
       .AddControllersAsServices();

    services.Configure<RazorViewEngineOptions>(options =>
                {
                    options.FileProviders.Add(personEmbeddedFileProvider);
                });
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        //...
        var personAssembly = typeof(PersonComponent.Program).GetTypeInfo().Assembly;
        var personEmbeddedFileProvider = new EmbeddedFileProvider(
            personAssembly,
            "PersonComponent"
        );

        app.UseStaticFiles();
        //This not work
        app.UseStaticFiles(new StaticFileOptions
        {
            FileProvider = new CompositeFileProvider(
                personEmbeddedFileProvider
            )
        });
    }

这是我在外部库的project.json 上的buildOptions 设置:

"buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true,
    "embed": [
      "Views/**/*.cshtml",
      "wwwroot/**"
    ]
  },

谁能告诉我出了什么问题吗?

谢谢大家(抱歉我的英语不好)


我知道这是一个老问题,但我遇到了同样的问题,对我来说,解决方案是创建嵌入式文件提供程序,将外部程序集和字符串作为参数传递“程序集名称.wwwroot”.

假设您的程序集名称是人物组件

    var personAssembly = typeof(PersonComponent.Program).GetTypeInfo().Assembly;
    var personEmbeddedFileProvider = new EmbeddedFileProvider(
        personAssembly,
        "PersonComponent.wwwroot"
    );

然后你必须使用这个文件提供程序使用静态文件 call

app.UseStaticFiles();
app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = personEmbeddedFileProvider
});

您可以选择使用替代内容请求路径,这样您就可以使用不同的 URL 获取本地和外部资源。 为此,只需填写RequestPath创建时变量StaticFileOptions

app.UseStaticFiles();
app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = personEmbeddedFileProvider,
    RequestPath = new PathString("/external")
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从外部库提供静态文件 的相关文章

随机推荐

  • 将 JSON 数据 POST 到现有对象中

    我正在从格式如下的 URL 检索 JSON 数据 zoneresponse tasks datafield1 datafor1 datafield2 datafor2 datafield3 datafor3 我无法控制该结构 因为它来自私有
  • 斯坦福 NLP 解析器是否有语义角色标记方法?

    我正在尝试找到英语句子的语义标签 我正在使用斯坦福 NLP 解析器 它有这方面的方法吗 我正在查看文档 但我能找到的最接近的东西是 CoreAnnotations SemanticWordAnnotation CoreAnnotations
  • 通过 XSL 获取当前 Unix 时间戳的最简单方法

    通过 XSL 获取当前 Unix 时间戳的最简单方法是什么 在 XSLT2 中 使用current dateTime 功能 在 XSLT1 中 您需要 EXSLT 扩展函数date time 但是 请注意 如果在样式表中多次计算该函数 则不
  • graph.microsoft.com 收到错误请求响应,缺少 UPN 和 PUID 声明

    我们正在尝试使用 Office 365 统一 API 向 graph microsoft com 发出请求 身份验证成功 但访问令牌缺少 UPN 和 PUID 这意味着针对https graph microsoft com beta me
  • 从 LiveData(房间数据库)填充 Spinner

    我在哪里 我正在尝试使用 Room 使用数据库中的数据填充微调器 该数据是一个术语列表 其中包含与其相关的课程 我想在创建新课程时使用微调器来选择与其关联的术语 目前 微调器不显示默认选项 但如果单击微调器 它会显示可供选择的数据列表 从微
  • 使用 IN 子句从 Excel 进行参数化查询

    我有一个MS Query连接来自Excel 2016床单到IBM DB2数据库 我使用参数化查询并将参数值链接到 Excel 单元格 而 奇异值 条款 例如 lt gt like工作 我无法得到IN工作条款具有多个值但除此之外超级简单的查询
  • 如何从 iPhone 在 Whatsapp 上分享图像 + 文本标题(URL)?

    我已使用以下代码在 WhatsApp 上共享图像 但无法使用以下代码设置标题文本 我尝试过注释属性UIDocumentInteractionController 但是在WhatsApp开发者表单中没有指定任何键进行注释 我确实知道我们可以通
  • 当用户不活动 2 分钟时获取信息“此请求导致为您的应用程序启动一个新进程”

    我使用 java 和 GWT 在 GAE 上部署了我的应用程序 当我使用我的应用程序 ID Sample sampleappId appspot com 登录我的应用程序时 在我的应用程序中 当我填写诸如客户注册之类的表格时 有很多表格 然
  • 我应该将 `package-lock.json` 复制到 Dockerfile 中的容器映像吗?

    这是我的Dockerfile FROM node 12 slim ENV NODE ENV production WORKDIR COPY COPY ENTIRE FOLDER COPY package json package json
  • 如何获取 Android 上的软键盘高度?

    这些天我一直在使用 libgdx 开发一个 android 项目 期间出现了一个疑问 当软键盘出现时 一些视图将被覆盖 所以我想获取解决此错误的高度 我知道使用android api开发项目时可以设置软输入模式来解决这个问题 libgdx是
  • 引用同一解决方案 C# 中另一个项目的 Web.Config 文件

    我有一个 VC2010 C 解决方案 其中有许多项目 例如 我有一个网络项目 并且有一个类库 在 web config 文件中 我有一个密钥
  • 向数据框添加新列的函数

    我需要一个函数 将新列 具有常量值 添加到数据框中df 到目前为止我的尝试是这样的 f function df col name col value df col name col value print df 典型的输入是 f df Ne
  • 如何停止docker中运行的节点

    我刚刚安装了 dockers 并安装了节点 我能够运行一个基本的快递网站 我现在的问题是我无法阻止它 Control C 没有执行任何操作 我暂时退出的做法是 关闭泊坞窗的终端 打开一个新的 搜索所有正在运行的 docker 容器 Then
  • JSP:将文件上传到服务器的最佳实践

    我正在使用多部分表单 Apache FileUpload 等上传文件 它工作正常 但是 我想知道在服务器中保存文件时的最佳实践或常见做法是什么 如下所示 命名服务器中的文件 即 什么名称更好 生成的一些UUID 或者当我插入文件关联数据时由
  • 仅限滑出式菜单 css

    我正在尝试制作一个纯 css 滑出菜单 可以滑出和滑回 请参阅我的小提琴http jsfiddle net EZ8SK 1 http jsfiddle net EZ8SK 1 这里 现在我想将处理程序合二为一 我尝试使用单选按钮或复选框来执
  • 如何在android studio中导入外部库?

    我很难导入库 PageSlidingTapStrip https github com astuetz PagerSlidingTabStrip https github com astuetz PagerSlidingTabStrip 我
  • Angularfire2.5 实时数据库,具有角度材料自动完成功能

    我正在尝试将角度材料自动完成输入字段与 angularfire2 v5 一起使用 我在调整所示示例时遇到一些困难 https material angular io components autocomplete examples http
  • 计算大矩阵的均值和协方差(300000 x 70000)

    我正在使用 Numpy 并尝试计算大矩阵 300000 x 70000 的均值和协方差 我有 32GB 大小的可用内存 就计算效率和实施简易性而言 此任务的最佳实践是什么 我目前的实现如下 def compute mean variance
  • 更改 tkinter 消息框中消息的部分颜色

    我有一个如下所示的 TKinter 消息框 我想改part将消息的颜色改为不同的颜色 例如 在下面的消息框中 我希望语言为Blue 这可能吗 无法更改此类选项Tkinter 标准对话框 http effbot org tkinterbook
  • 从外部库提供静态文件

    我试图提供外部库内的静态文件 我已经完成了控制器和视图的工作 但我无法从该库加载资源 javascript 图像等 这是我的 Startup cs public void ConfigureServices IServiceCollecti