引导图标在本地加载,但在线时不加载

Posted

技术标签:

【中文标题】引导图标在本地加载,但在线时不加载【英文标题】:Bootstrap icons are loaded locally but not when online 【发布时间】:2013-11-08 23:11:12 【问题描述】:

基本上我得到了以下 html

<button class="disabled btn-primary btn" type="submit" disabled="">
   <i class="glyphicon glyphicon-ban-circle"></i>
   Log in
</button>

按钮上的图标在本地显示良好,但是当我在 Windows Azure 上运行时,我得到以下按钮,其前缀看起来很奇怪,而不是图标:

对此进行调查,我意识到在本地访问我的网站时,浏览器会尝试加载文件: /Content/fonts/glyphicons-halflings-regular.woff (它成功了) 当在线时(在天蓝色上),它会尝试在以下位置加载: /fonts/glyphicons-halflings-regular.woff

为什么不放它在本地做的 /Content 前缀。

我使用的是标准引导文件,它与本地和在线运行的网站完全相同。

我还通过以下方式捆绑内容:

    bundles.Add(new StyleBundle("~/Content/bootstrapcss").Include(
                "~/Content/bootstrap/bootstrap.css"));

文件结构如下:

bootstrap 也在寻找这样的文件:

url('../fonts/glyphicons-halflings-regular.woff') 

所以我想它会在 Content 文件夹中查找,而不是 root,因为它当前位于 Content/bootstrapcss 文件夹中。

【问题讨论】:

您是否尝试过修改您的 css 文件以指向正确的图像?与本地环境相比,您的服务器在所需语法方面会有所不同。您在服务器上的文件夹结构是什么? 你是否在打包css文件? @jezzipin 好吧,我尝试将文件夹“fonts”添加到根目录,它现在可以工作了。但是现在“字体”文件夹既位于根目录下,又位于内容中。如何从 azure 中删除文件夹?我已从我的 Visual Studio 项目中删除该文件夹并发布它,但它仍在 Azure 上。 @GauravMantri 是的,我是 【参考方案1】:

我们最近遇到了类似的问题(尽管我们使用的是metroUI - http://metroui.org.ua/)。本质上,事实证明我们正在捆绑 css 文件,因此当我们在 Windows Azure 中部署应用程序时,没有加载任何字体。

在我们的例子中,我们有以下目录结构:

modern.css 引用的字体像

../fonts/iconFont.eot

我们像这样捆绑 css 文件:

bundles.Add(new StyleBundle("~/Content/css").Include(
                "~/Content/css/modern.css",
                "~/Content/css/modern-responsive.css"));

由于捆绑,应用程序在应用程序根目录下的/fonts 目录中寻找字体,而这显然不存在。

长话短说,我们最终更改了捆绑包名称:

bundles.Add(new StyleBundle("~/Content/css/metroUI").Include(
                "~/Content/css/modern.css",
                "~/Content/css/modern-responsive.css"));

一旦更改了捆绑包名称,一切就开始正常工作了。

【讨论】:

我明白了。我已使用有关我的包和文件位置的信息更新了我的问题。我已经明白了,就像你说的那样,我已经猜到了——但问题仍然存在。它的引用方式如下:../fonts/glyphicons-halflings-regular.woff 所以我认为它会查找一个文件夹,例如。到内容文件夹而不是根文件夹。 尝试将~/Content/bootstrapcss 更改为~/Content/bootstrapcss/bootstrap,这应该会有所作为。基本上,当捆绑bootstrapcss 成为应用程序根目录中Content 文件夹中的文件名时,寻找Fonts 文件夹。如果 css 文件引用 ../fonts 之类的字体,则它位于 Content 文件夹上方。添加另一个名称将使 css 上升到 Content 文件夹,然后在其中查找 Fonts 文件夹。 @GauravMantri,我的字体文件夹位于根目录,但我仍然遇到同样的问题。我该怎么办?提前致谢。 改变这个使得css不能在本地加载..这个分辨率对我没有帮助 更改捆绑包名称有效!...在发布目录中,我现在看到“内容”文件夹,并且应用程序运行正常。谢谢【参考方案2】:

改变路径确实有效,但“已回答的问题”错过了一个关键点。

如果您使用的是引用捆绑包的 _Layout.cshtml,这将不再在本地和 Azure 上工作。

您也需要更新_Layout.cshtml 页面!

因此,如果您将捆绑路径从 Content/css 更改为 Scripts/css,那么您需要分别将 _Layout.cshtml 更改为 @Styles.Render("~/Scripts/css")

【讨论】:

【参考方案3】:

在发布到 Azure Web 服务时,使用 ASP.NET Core 2.0 MVC Web 应用程序遇到此错误。

我的样式表包含在以下代码中。

 <environment include="Development">
        <link href="https://fonts.googleapis.com/css?family=Coda" rel="stylesheet">
        <link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-blue.min.css" />
        <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
        <link rel="stylesheet" href="~/css/site.css" />
 </environment>

只需将链接复制并粘贴到开发工作之外的任何环境中

<environment exclude="Development">
  <link href="https://fonts.googleapis.com/css?family=Coda" rel="stylesheet">
  <link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-blue.min.css" />
  <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
  <link rel="stylesheet" href="~/css/site.css" />
  <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap.min.css" asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css" asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute"
  />
  <link rel="stylesheet" href="~/css/site.min.css" asp-append-version="true" />
</environment>

【讨论】:

【参考方案4】:

如果您下载了包含引导图标的 theme.zip 或 theme.rar,请在解压缩之前执行以下操作:

右键点击压缩包 选中“取消阻止”框(如果可见)

【讨论】:

【参考方案5】:

为了使图标正常工作-我必须在图像所在的文件夹上将文件夹权限设置为“everyone = read”

【讨论】:

以上是关于引导图标在本地加载,但在线时不加载的主要内容,如果未能解决你的问题,请参考以下文章

首次访问 Nuxt 2.15.3、Tailwind 和 Pwa 模块时不加载 Safari 本地字体

在本地加载 CSS,但不在 Heroku 中加载 Rails 应用程序

UIWebview 没有加载正确的本地化版本的网站

VS NuGet加载本地程序包

Javascript未在在线网站上加载,但在本地加载xampp

为 javascript 运行本地服务器,但仍无法加载网站图标图像