【问题标题】:How get physical path from a static path (cdn) in c # net core如何从 c# net core 中的静态路径(cdn)获取物理路径
【发布时间】:2021-01-15 20:45:24
【问题描述】:

我的 cdn 指向我的项目的不同路径

app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = new PhysicalFileProvider(@"C:\inetpub\wwwroot\cdn\images"),
    RequestPath = "/cdn/images"
});

有人可以帮我从控制器访问该物理路径吗?

如果我使用HostingEnvironment.WebRootPath,我会得到我的项目路径,但不是 cdn 路径

问题是如何从你的 RequestPath 中获取 FilePRvider

【问题讨论】:

  • 为什么不在某个常见的可访问位置声明路径(例如:通过静态类公开为 const),以便您的 UseStaticFiles 和您的控制器都使用该公共值。
  • 对于基础架构解决方法,您可以创建一个符号链接以从应用程序部署路径的相对文件夹中指向实际的物理文件夹。不过,这不是一个可移植的解决方案。
  • CDN 路径是什么意思? :|为什么不把路径放在 appSettings 里面呢?
  • 正如@KingKing 所说,我已经使用静态变量解决了这个问题,但我想从它的 RequestPath 中了解 FilePRvider
  • 我认为您不需要像在配置代码中设置的那样获取 PhysicalFileProvider 的确切实例。它就像一个独立的服务(读取文件),只要你有一个输入文件路径就应该可以正常工作。因此,如果您有一个文件路径并想读取该文件,只需使用该文件路径创建一个 PhysicalFileProvider 的新实例。

标签: c# asp.net asp.net-core routes


【解决方案1】:

在配置文件中建立路径就解决了问题,我们不用再考虑了 谢谢大家

【讨论】:

  • 所以您解决了问题,但没有提供具体解决方法。这使您的帖子对其他人毫无用处。最好删除它。
  • 解决方法是上面的评论。在 appsettings.json 中设置值 @"C:\inetpub\wwwroot\cdn\images" 可以解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-20
  • 2011-08-30
  • 2020-07-03
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多