簡體   English   中英

HTML鏈接不適用於localhost?

[英]Html links don't work with localhost?

這是真的? 我正在Visual Studio中的mvc3應用程序上工作,我希望將用作標題的圖像作為返回首頁的鏈接,但是由於我只是在本地運行它,因此使用此行作為碼:

<a href="localhost:60060">
<img src="../../Content/images/LionLabs.png" alt="Lion logo">
</a>

但這不起作用! 我是在做錯什么,還是僅僅是不能使用本地主機?

我也嘗試過使用javascript方法作為href刷新頁面,但這既不可行:(

由於鏈接默認是從域開始的,因此沒有理由指定它。 您可以只使用/

<a href="/">
    <img src="../../Content/images/LionLabs.png" alt="Lion logo">
</a>

<a href="">的鏈接與<img src="">的鏈接沒有不同。

您不應使用絕對路徑,因為在部署項目時,站點名稱將不是localhost:60060。

供主頁使用

<a href="/"></a>

HTML鏈接在localhost上可以正常工作:

<a href="http://localhost:60060/">
    <img src="../../Content/images/LionLabs.png" alt="Lion logo">
</a>

這里的問題是僅使用localhost:60060嘗試使用相對路徑,因此瀏覽器實際上正在尋找http://localhost:60060/localhost:60060/ ,這當然是無效路徑。

另外,在應用程序頁面之間鏈接時,不應使用絕對路徑,因為當您需要更改域名(例如,將應用程序部署到Web)時,這將成為噩夢。

為了使您的代碼對MVC更友好,請執行以下操作:

<a href="@Url.Action("Index", "Home")">
    <img src="@Url.Content("~/Content/images/LionLabs.png")" alt="Lion logo">
</a>

這里發生的是,當頁面提供給用戶時,ASP.NET MVC Url幫助程序正在提供正確的路徑信息,因此它會自動適應服務器中的所有更改。 它還可以使您的Routes發揮最大作用,因為您可以輕松更改鏈接的路由(即URL),但仍使用相同的控制器和視圖。

您已將href用作localhost:60060 它應該是一個頁面(可以是default.html或類似的東西)。

更改此:

<a href="localhost:60060">
    <img src="../../Content/images/LionLabs.png" alt="Lion logo">
</a>

對此:

<a href="@Url.Action("Index", "Home")">
    <img src="@Url.Content("~/Content/images/LionLabs.png")" alt="Lion logo">
</a>

為什么?

最好使用@Url.Action ,因為它將使用您在Global.asax中設置的任何自定義路由。 您是否可以想象如果必須更改URL路由,就可以修改復雜站點上的每個鏈接引用? :)

使用@Url.Content ,因為它將正確解析到應用程序的根目錄,從而消除了使用../../../../../..的不確定性。 更干凈!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM