【问题标题】:My asp.net core app doesn't find favicon.ico when it's deployed to IIS我的 asp.net 核心应用程序在部署到 IIS 时找不到 favicon.ico
【发布时间】:2023-03-19 06:02:01
【问题描述】:

当我使用 IIS Express 在 Visual Studio 2017 中运行我的应用程序时,它能够在 wwwroot 文件夹中找到 favicon.ico。 当它部署到服务器上的 IIS 时,它找不到它。

我认为这与网址有关...

在开发中,网址是https://localhost:44359 favicon 出现了,如果我手动输入 https://localhost:44359/favicon.ico 然后它会返回它。

在生产中,网址是https://localhost/reporting favicon 没有出现,似乎在https://localhost/favicon.ico (返回404)上寻找它。 如果我将其更改为http://localhost/reporting/favicon.ico,则它会返回图标。

有人可以建议为什么它不自动查找 /reporting/ 下的图标吗??

我也有一些路由问题,但除此之外,该应用程序似乎运行良好。我认为路由问题可能与网站图标的原因相同。

【问题讨论】:

  • 您确定该文件确实包含在您的发布输出中并登陆服务器?
  • 嗨,Joe,是的,favicon.ico 肯定在服务器上的 wwwroot 文件夹中
  • 请不要使用链接标签。访问静态文件的正确方法在这里。 stackoverflow.com/questions/48859345/…

标签: iis asp.net-core visual-studio-2017


【解决方案1】:

浏览器只检查example.com/favicon.ico - 他们不检查子文件夹。

如果你把它放在非标准的地方(你是!),你需要将浏览器指向它。在您页面的<head> 中:

<link rel="shortcut icon" href="/reporting/favicon.ico">

【讨论】:

  • 您好,感谢您的回复。你说的是非标准的......但是当视觉工作室为我创建项目时,favicon 就是它所在的位置。不确定我是否在某个地方做错了什么导致它成为非标准的地方?我按照本指南进行了部署:stackify.com/how-to-deploy-asp-net-core-to-iis
  • 我尝试将 favicon.ico 从 wwwroot 复制到父文件夹“reporting”,但仍然找不到
  • 网站图标的标准位置是域名的根目录。 Visual Studio 假设您将项目部署到域名,因此部署到子文件夹需要进行一些调整。
  • 如果您已将网站图标移至 example.com/favicon.ico 并且在直接访问时显示在那里,请尝试清除缓存或隐身窗口。我注意到 Chrome 在 404 一段时间后不会重试默认位置。
  • 啊,因为我有它在站点/默认网站/报告/它没有找到它! :-/
【解决方案2】:

为网站子文件夹中的应用程序查找静态资源时存在问题。但是,在 Razor 页面中,您可以在 &lt;head&gt; 中使用:

<link rel="shortcut icon" href='@Url.Content("~/favicon.ico")'>

其中的 ~ 指的是您的应用程序的 wwwroot 文件夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 2018-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 2019-09-24
    相关资源
    最近更新 更多