【问题标题】:Relative path in virtual directory虚拟目录中的相对路径
【发布时间】:2014-02-08 04:58:42
【问题描述】:

我正在将电子商务应用程序从旧的 php 框架迁移到 ASP.NET MVC。某些产品的描述中包含指向其他产品的链接。我编写了一个小应用程序来将旧站点中的所有内容导入新站点,现在我也想更新这些链接。我想将链接设为相对链接,但相对链接在 localhost 上不起作用,因为该站点位于虚拟目录中。

旧链接:http://domain/index.php?productID=1234
新链接:/product/1234

新链接在localhost 中不起作用,因为它将被转换为localhost/product/1234 而不是localhost/virtualdirectory/product/1234

我在谷歌上搜索解决方案已经有一段时间了,但我似乎找不到任何东西。您对如何解决这个问题有任何想法吗?

其实我在写这个问题的时候想出了一个解决方案,但是我还是要发布这个,也许你想出了一个更好的解决方案。

【问题讨论】:

  • 我可能不完全理解,但是虚拟目录(我猜你说的就是 IIS 虚拟目录)如何影响 localhost 上的测试?编辑:您使用的是 IIS Web Express 服务器吗?
  • 您是否尝试过使用波浪号 (~) 方法。更多细节在这里:weblogs.asp.net/fmarguerie/archive/2004/05/05/…

标签: asp.net asp.net-mvc hyperlink


【解决方案1】:

您是否考虑过不在虚拟目录中运行您的应用程序?虽然它可能是 Visual Studio 中的默认设置,但可以更改。

【讨论】:

  • 我没有考虑这个,因为我不知道如何设置多个应用程序在虚拟目录中运行。你能给我指个教程什么的吗?
  • 您当前的设置是什么 - 您的本地主机站点是如何托管的?
  • 我使用本地 IIS Web 服务器。
  • 最简单的方法是为每个站点分配不同的端口,从而避免与部署站点的虚拟目录差异
  • 好的,我也想过。
【解决方案2】:

我想出的解决方案是使用这样的链接:../../product/1234

【讨论】:

    【解决方案3】:

    在 Visual Studio 中,右键单击您的项目并单击“属性”。在“Web”选项卡下,在“Virtual Path:”框中输入虚拟路径

    例如,/MyVirtualPath

    在你的代码中,确保你的链接写成“../MyVirtualPath/”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-18
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      相关资源
      最近更新 更多