gpt4 book ai didi

c# - 在 Razor 中使用站点根目录相关链接

转载 作者:IT王子 更新时间:2023-10-29 03:48:52 25 4
gpt4 key购买 nike

我有一个使用 Razor (C#) 运行良好的网站,当我使用本地测试 (WebMatrix IIS) 时,所有编码工作正常。

当我把它放在我的服务器上“在线”时,该网站不在它自己的网站的根目录下

例如:

http://intranet.mycompany.com/inform

这基本上是我的文件夹结构的“根”,所以我所有的文件夹都从那里开始(css 文件 default.cshtml...等等)

当我从链接 http://intranet.mycompany.com/inform 访问我的网站时,我的“_PageStart.cshtml”正确地看到了它它给了我在 _PageStart.cshtml 中配置的布局(它确实显示了布局 + 呈现的 default.cshtml)

但没有别的是获得正确的路径,例如:

<img src="~/images/logos/hdr.png" />

img 持有者在那里我可以看到它但显示链接已损坏......当我右键单击 img 持有者并执行属性以查看文件应该在哪里时它会显示给我:

http://intranet.mycompany.com/images/logos/hdr.png

所以它会转到“完整”根而不是相对根...

我该如何解决?

最佳答案

您必须在整个应用中使用相对路径:

~ 不能在静态 html 代码中工作。

你可以写

<img src="@Url.Content("~/images/logos/hdr.png")" />

<img src="../images/logos/hdr.png" />

第一种方法适用于布局文件,当您具有不同长度的路由 url 时,您的相对路径可能会发生变化。

编辑

关于您关于正常链接的问题:

当链接到应用程序中的另一个页面时,您不会将 View 文件指定为目标,而是将呈现 View 的操作指定为结果。为此,您使用 HtmlHelper ActionLink:

@Html.ActionLink("Linktext", "YourController", "YourAction")

自动为您生成正确的 url:

<a href="YourController/YourAction">Linktext</a>

编辑 2

好的,没有 MVC - 所以您必须自己生成链接。

你也必须使用相对路径。不要以 / 字符开始任何链接!

<a href="linkOnSameLevel.cshtml">Link</a>
<a href="../linkOnParentLevel.cshtml">Link</a>
<a href="subFolder/linkOnOneLevelDown.cshtml">Link</a>

编辑 3

在使用布局页面时,您可以使用Href扩展方法来生成相对 url:

<link href="@Href("~/style.css")" ...

关于c# - 在 Razor 中使用站点根目录相关链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8574237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com