asp.net mvc 镜像路径和虚拟目录

2024-04-21

我知道这必须是重复的,但我一直在翻阅大量有关此的信息,但无法使其发挥作用。

我正在尝试让一个网站在客户端的服务器上运行,并且他们将该网站安装在虚拟目录中。我本地没有这个设置,所以我在这里盲目飞行。

我正在尝试建立一条通往图像的路径。 (用于 Facebook OpenGraph 元数据)。

我需要图像的路径是完全限定的绝对 URL。我尝试了很多事情,但似乎没有任何效果。下面的代码输出一个相对 url,但这不起作用。

<% var urlHelper = VirtualPathUtility.ToAbsolute("~/static/images/image.jpg");%>
<meta property="og:image" content="<%=urlHelper%>" />

outputs:

<meta property="og:image" content="/static/images/image.jpg" /> 

我也尝试过:

<% var serverHost = HttpContext.Current.Request.Url; %>
<meta property="og:image" 
          content="<%=serverHost + "/static/images/image.jpg"%>" />

但这正在产生:

<meta property="og:image" 
   content="http://localhost:51863/ViewFile.aspx/static/images/image.jpg" />

我在找http://example.com/virtualdirectory/static/images/image.jpg http://example.com/virtualdirectory/static/images/image.jpg

任何帮助都感激不尽。我真的不想对网址进行硬编码。

谢谢, 斯科特

EDIT

我忘记提到我的第一次尝试是 Url.Content("~/....jpg) 但输出的是相对 url,而不是绝对的 url。


这段代码

public static class Helpers
{
  public static Uri FullyQualifiedUri( this HtmlHelper html , string relativeOrAbsolutePath )
  {
    Uri        baseUri  = HttpContext.Current.Request.Url ;
    string     path     = UrlHelper.GenerateContentUrl( relativeOrAbsolutePath, new HttpContextWrapper( HttpContext.Current ) ) ;
    Uri        instance = null ;
    bool       ok       = Uri.TryCreate( baseUri , path , out instance ) ;
    return instance ; // instance will be null if the uri could not be created
  }
}

应该适用于你可以扔给它的几乎任何 URI。

不过,需要注意一件事:页面相对 URI(例如foo/bar/image.png)可能不会按照您想象的方式解析,尤其是当 URI 引用目录时,因此您会得到默认页面(即http://localhost/foo/bar可能是实际资源,在这种情况下 URI 是完整的,也可能是不完整的,在这种情况下 Asp.Net MVC 的路由会填补空白。所有请求都是原始 URI。如果你想解决这个问题,你需要获得RouteData获取请求并询问其详细信息。

以下是使用植根于的网络应用程序解决问题的方法http://localhost/MyApp并以不同的方式调用 Html 帮助器方法About的看法Home控制器。

  • ~
    • 决心http://localhost/MyApp/
  • /
    • 解析为`http://localhost/
  • ~/
    • 决心http://localhost/MyApp/
  • foo/bar/myImage.png
    • 决心http://localhost/MyApp/Home/foo/bar/myImage.png
  • /foo/bar/myImage.png
    • 决心http://localhost/foo/bar/myImage.png
  • ~/foo/bar/myImage.png
    • 决心http://localhost/MyApp/foo/bar/myImage.png
  • http://somesite.com/foo/bar/myImage.png
    • 决心http://somesite.come/foo/bar/myImage.png
  • http://somesite.com:123/foo/bar/myImage.png
    • 决心http://somesite.come:123/foo/bar/myImage.png
  • ftp://somesite.com/foo/bar/myImage.png
    • 决心ftp://somesite.come:123/foo/bar/myImage.png
  • mailto://[email protected] /cdn-cgi/l/email-protection
    • 决心mailto:[email protected] /cdn-cgi/l/email-protection
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

asp.net mvc 镜像路径和虚拟目录 的相关文章

  • 测试 hdf5/c++ 中的组是否存在

    我正在打开一个现有的 HDF5 文件来附加数据 我想向那个叫做的小组保证 A存在以供后续访问 我正在寻找一种简单的方法来创建 A有条件地 如果不存在则创建并返回新组 或者返回现有组 一种方法是测试 A存在 我怎样才能高效地做到这一点 根据
  • 为什么C Clock()返回0

    我有这样的事情 clock t start end start clock something else end clock printf nClock cycles are d d n start end 我总是得到输出 时钟周期是 0
  • 在 Windows Phone 上启动 pdf 文件时出现 System.Runtime.InteropServices.COMException

    我正在尝试使用我之前在另一个应用程序上使用过的以下工作代码打开 pdf 文件 但这一次 当流程到达此行时 我收到 System Runtime InteropServices COMException Windows System Laun
  • __FUNCTION__ 宏的 C# 版本

    有人对 C FUNCTION 宏的 C 版本有好的解决方案吗 编译器似乎不喜欢它 尝试使用这个代替 System Reflection MethodBase GetCurrentMethod Name C 没有 LINE or FUNCTI
  • 阅读 Stack Overflow RSS 源

    我正在尝试获取未回答问题的列表the feed https stackoverflow com feeds 但我在阅读时遇到困难 const string RECENT QUESTIONS https stackoverflow com f
  • Qt中正确的线程方式

    我的图像加载非常耗时 图像很大 并且在加载时也完成了一些操作 我不想阻止应用程序 GUI 我的想法是在另一个线程中加载图像 发出图像已加载的信号 然后用该图像重绘视图 我的做法 void Window loadImage ImageLoad
  • 如何避免选择项目时 winforms 树视图图标发生变化

    我正在一个小型 C Winforms 应用程序中尝试树视图 我已经以编程方式将 ImageList 分配给树视图 并且所有节点都很好地显示了它们的图标 but当我单击一个节点时 它的图标会发生变化 变为 ImageList 中的第一个图像
  • 如何在不使用reinterpret_cast的情况下使用dlsym()加载函数?

    我正在尝试使用 clang tidy 来强制执行 C 核心指南 虽然它确实有很多有效点 但有一件事我无法真正解决 dlsym 返回一个void 我需要以某种方式将其转换为正确的函数指针 为此 我使用reinterpret cast 由于指南
  • C#:如何使用 SHOpenFolderAndSelectItems [重复]

    这个问题在这里已经有答案了 有人可以举例说明如何使用 shell 函数吗SH打开文件夹并选择项目 http msdn microsoft com en us library bb762232 VS 85 aspx来自 C 我不太明白如何使用
  • 编写专门用于类及其子类的函数模板

    我正在尝试编写一个函数模板 一个版本应该用于不满足另一版本标准的所有类型 当参数是给定类的基类或该类本身时 应使用另一个版本 我尝试过超载Base 但是当类派生自Base 他们使用通用的 而不是特定的 我也尝试过这种 SFINAE 方法 s
  • 如何从枚举中选择随机值?

    给定 C 中的任意枚举 如何选择随机值 我没有找到这个非常基本的问题 我会在一分钟内发布我的答案作为任何人的参考 但请随意发布你自己的答案 Array values Enum GetValues typeof Bar Random rand
  • 用 C# 编写的带有点击移动的 WPF 游戏

    我试图将标签网格移动到鼠标的位置 就像冒险游戏中的移动一样 理想情况下 我会在途中删除并重新绘制它们 但是 现在我只想弄清楚如何将 int 转换为厚度或 pointtoscreen 到目前为止我有 player XMove int Mous
  • 通过 MSBuild 调用 cl.exe 时无限期挂起

    我正在尝试在我的 主要是 C 项目上运行 MSBuild 想象一下一个非常庞大的代码库 Visual Studio 2015 是有问题的工具集 Windows 7 SP1 和 VS 2015 更新 2 即使使用 m 1 从而迫使它仅使用一个
  • 便携式终端

    有没有办法根据所使用的操作系统自动使用正确的 EOL 字符 我在想类似的事情std eol 我知道使用预处理器指令非常容易 但很好奇它是否已经可用 我感兴趣的是 我的应用程序中通常有一些消息 稍后我会将这些消息组合成一个字符串 并且我希望将
  • 如何使用 g++ 在 c++ 20 中使用模块?

    我读了这个链接https gcc gnu org wiki cxx modules https gcc gnu org wiki cxx modules并尝试从该网站复制以下示例 我已经知道这个编译器部分支持模块系统 注 我用的是windo
  • 从 C# 中的 .NET SecureString 读取单个字符?

    WPF 的PasswordBox 返回一个SecureString 它对窥探者隐藏密码 问题是你最终必须获得密码的值 而我在网上找到的建议都涉及将值复制到字符串中 这会让你回到窥探者的问题 IntPtr bstr Marshal Secur
  • 重叠的回收和Application_Start

    我有一个使用 AppFabric 进行分布式缓存的 asp net Web 应用程序 在 Application Start 上 我初始化与 AppFabric 的连接 这通常需要几毫秒 这是完全可以接受的 有时可能需要长达30秒连接 在回
  • C++0x 中的新 unicode 字符

    我正在构建一个 API 它允许我获取各种编码的字符串 包括 utf8 utf16 utf32 和 wchar t 根据操作系统 可能是 utf32 或 utf16 新的 C 标准引入了新类型char16 t and char32 t没有这么
  • ASP.NET Core:会话 ID 始终变化

    今天启动了一个全新的 ASP NET Core 网站 按照说明添加会话 我们在索引页上打印出会话 ID 它始终是唯一的 我认为这可能是 cookie 合规性 所以我在 Chrome 的高级设置和调试器中删除了所有 cookie 但横幅不会再
  • Page_ClientValidate 正在验证多次。

    我的问题是 验证摘要消息 警报 显示两次 我无法弄清楚原因 请帮忙 这是代码 function validate javascript function if typeof Page ClientValidate function var

随机推荐

  • 使用 jQuery 在 AngularJS 元素指令上绑定事件

    我在 AngularJS 中有一个指令 module angular module demoApp null module directive sample function return restrict E transclude tru
  • 吃豆人:眼睛是如何找到回到怪物洞的路的?

    我在 吃豆人 中发现了很多关于鬼魂人工智能的参考 但没有提到在鬼魂被吃豆人吃掉后 眼睛如何找到回到中央鬼洞的路 在我的实现中 我实现了一个简单但糟糕的解决方案 我只是在每个角落都硬编码了应该采取的方向 有更好 或最好的解决方案吗 也许是一个
  • C#/.NET 分析器应具有哪些功能?

    这可能是一则边缘广告 更不用说主观了 但这个问题是诚实的 在过去的两个月里 我一直在为 NET 开发一个新的开源分析器 称为 SlimTune Profiler http code google com p slimtune http co
  • SwiftUI 是否可以调用该函数并从其他页面更改视图?

    这是我的代码 struct FirstPage View var body some View VStack NavigationView VStack Text First Page bold NavigationLink destina
  • Node.js 异步等待 - 错误 regeneratorRuntime

    我学习了如何在浏览器中使用 Promise 但是当我想在 Node js 中使用它时 它会抛出错误 var ref asyncToGenerator PURE regeneratorRuntime mark function callee
  • 将 CVPixelBuffer 渲染到 NSView (macOS)

    我有一个CVPixelBuffer我正在尝试在屏幕上有效地绘制 转变为低效率的方式NSImage可以工作 但速度非常慢 丢掉了大约 40 的帧数 因此 我尝试使用将其渲染在屏幕上CIContext s drawImage inRect fr
  • 使用 SharedSizeGroup 测量/排列网格

    两个包含以某种方式指定的元素的网格和 SharedSizeGroup 似乎存在一些问题 这个问题是为了回答先前的问题 https stackoverflow com questions 3865033 grid height not adj
  • Visual Studio 调试器在混合调试模式下停止命中断点

    我在 MSVC2013 中混合调试时遇到严重问题 从本机 C DLL 调用 COM 方法后 调试器不再在断点处停止 代码结构 上图展示了代码的整体结构 我有一个解决方案 其中包含大约 10 个 C 项目 大约 50 个 C 本机项目和一个
  • Android Studio、OpenCV、C++、jni、NDK - 无法配置?

    我正在尝试使用 jni 和 Android Studio NDK 在 Android Studio 中进行 OpenCV C 调用 这些是我一直在工作的参考资料 https github com opencv opencv tree mas
  • Kubernetes 应用服务但端点没有

    当我尝试将服务应用于 pod 时 端点始终为 none 有人可以知道任何根本原因吗 我还检查选择器是否与deployment yaml 中定义的内容匹配 下面是我使用的部署 服务文件 我还附上了服务描述 部署 yaml apiVersion
  • 如何避免在 git-add 时指定绝对文件路径

    Using git add一旦文件路径变得很长 命令就会变得乏味 例如git add src test com abc product server datasource manager aats DSManger java是否可以绕过指定
  • 将参数从 .aspx.cs 传递到 .ashx

    我想将字符串传递到 ashx 页面 通常我会通过在 aspx 页面中设置参数来完成此操作 例如 Loader TreeLoader ashx passedVariable hello 但我想在 aspx cs 端以编程方式执行此操作 因为该
  • 引导程序中导航和巨型屏幕之间的差距

    对于我的一生 我无法确定我的导航和大屏幕之间的空白来自哪里 我已经玩过很多变量 但无法让它消失 我在这里做了一个cssdeckhttp cssdeck com labs u6ws0ozl http cssdeck com labs u6ws
  • 用于屏幕文本的 OCR(光学字符识别)

    我正在尝试创建一个软件 通过捕获屏幕截图来自动化 PC 然后使用 OCR 光学字符识别 来查找要单击的特定按钮 例如 我已经有了鼠标和键盘控制部分 但现在 我需要 OCR 来处理屏幕截图 我发现 Tesseract OCR 似乎不能很好地处
  • 为什么 Django 中的 Google-Auth(Google Identity) 弹出窗口空白?

    我的 Google 身份验证卡在弹出身份验证流程中 一键式身份验证工作正常 但按钮不行 div div 我点击它 弹出窗口打开 但它仍然空白 没有任何进展
  • SDWebImage 在 swift 中崩溃

    看来如果我在已完成的块中使用 self 它就会崩溃 self imageView sd setImageWithURL MYIMAGEURL placeholderImage nil options SDWebImageOptions Re
  • 如何让主键从1000开始?

    create table tablename id integer unsigned not null AUTO INCREMENT primary key id 我需要主键从1000开始 我正在使用MySQL 如果您的表已经创建为自动增量
  • 左特征向量在 scipy 中没有给出正确的(马尔可夫)平稳概率

    给定以下马尔可夫矩阵 import numpy scipy linalg A numpy array 0 9 0 1 0 15 0 85 平稳概率存在且等于 6 4 通过取矩阵的大幂可以很容易地验证这一点 B A copy for in x
  • Z3:检查模型是否唯一

    Z3 有没有办法证明 表明给定模型是唯一的并且不存在其他解决方案 一个小例子来演示 declare const a1 Int declare const a2 Int declare const a3 Int declare const b
  • asp.net mvc 镜像路径和虚拟目录

    我知道这必须是重复的 但我一直在翻阅大量有关此的信息 但无法使其发挥作用 我正在尝试让一个网站在客户端的服务器上运行 并且他们将该网站安装在虚拟目录中 我本地没有这个设置 所以我在这里盲目飞行 我正在尝试建立一条通往图像的路径 用于 Fac