【问题标题】:Favicon only shows in Homepage ASP.NET MVCFavicon 仅显示在主页 ASP.NET MVC 中
【发布时间】:2016-09-28 23:02:10
【问题描述】:

我只是将它添加到我的 _Layout.cshtml 的 head 中。

<head>  
    <link rel="shortcut icon" type="image/ico" href="~/Images/favicon.ico">
</head>` 

图标显示,但只在首页,这是什么原因?

【问题讨论】:

  • 您的所有页面是否都使用相同的布局。
  • 也供参考,在 MVC 中尝试使用 razor 语法,使其适用于所有环境。
  • 谢谢先生的帮助。
  • 将 favicon.ico 放在域的根目录中只会真正影响 IE5、IIRC。对于更现代的浏览器,您应该能够包含一个链接标记以指向另一个目录。如果您需要使用多个布局文件,我建议使用您的主布局文件并让任何布局文件将其用于您的元标记和其他不会更改的信息。或确保在您使用的所有布局文件中设置元标记。

标签: asp.net asp.net-mvc-5 favicon


【解决方案1】:

一般来说,最好将所有与网站图标相关的文件放在网站的根目录中。某些浏览器会始终检查根文件夹中的 favicon.ico。

<head>  
    <link rel="shortcut icon" type="image/ico" href="~/favicon.ico">
</head>

另外,看看这些帖子

Is putting your favicon.ico file in a non-root path a bad idea?

Serving favicon.ico in ASP.NET MVC

【讨论】:

    【解决方案2】:

    您可以使用IIS IRL rewrite module 轻松添加重写规则,而不是将favicon.ico 文件移动到根目录,这将使它像在根目录中一样,即使它是您想要的位置而是保留它。

    只需安装重写模块,并将其放入您的根 web.config 文件中。

    <configuration>
      <system.webServer>
        <rewrite>
            <rule name="Rewrite favicon.ico location from root to physical">
              <match url="^favicon\.ico$"/>
              <action type="Rewrite" url="images/favicon.ico"/>
            </rule>
          </rules>
        </rewrite>
      </system.webServer>
    </configuration>
    

    当然,您也可以在_Layout.cshtml 文件中为那些将尊重快捷方式图标标签的浏览器指定文件的实际位置。

    <head>  
        <link rel="shortcut icon" type="image/ico" href="@Url.Content("~/Images/favicon.ico")">
    </head>
    

    【讨论】:

    • 谢谢先生的帮助。
    猜你喜欢
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 2021-10-10
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多