Bootstrap-Symbole werden lokal, aber nicht online geladen

Grundsätzlich habe ich folgendes HTML bekommen:

 

Lokal wird das Symbol auf der Schaltfläche angezeigt, aber wenn ich Windows Azure verwende, erhalte ich die folgende Schaltfläche mit einem seltsamen Looks-Präfix anstelle des Symbols:

Bildbeschreibung hier eingeben Als ich das betrachtete, erkannte ich, dass der Browser beim lokalen Zugriff auf meine Website versuchen würde, die Datei: /Content/fonts/glyphicons-halflings-regular.woff (was erfolgreich war) zu laden, während er online (auf azure) versuchte laden bei: /fonts/glyphicons-halflings-regular.woff

Warum wird das Präfix “/ Content” nicht lokal eingefügt?

Ich verwende die Standard-Bootstrap-Dateien und es sind die GENAUEN gleichen Websites, die lokal und online laufen.

Außerdem bündle ich den Inhalt folgendermaßen:

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

Und die Dateistruktur sieht folgendermaßen aus:

Bildbeschreibung hier eingeben

Auch Bootstrap sucht nach den Dateien wie folgt:

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

Ich nehme an, dass es im Ordner “Content” und nicht im Stammverzeichnis angezeigt wird, da es sich momentan im Ordner “Content / bootstrapcss” befindet.

Wir hatten kürzlich ähnliche metroUI (obwohl wir metroUIhttp://metroui.org.ua/ ). Im Wesentlichen stellte sich heraus, dass wir die CSS-Dateien bündelten, und deshalb wurden keine der Zeichensätze geladen, wenn wir die Anwendung in Windows Azure bereitstellen.

In unserem Fall hatten wir folgende Verzeichnisstruktur:

Bildbeschreibung hier eingeben

und modern.css referenzierte fonts wie

 ../fonts/iconFont.eot 

und wir haben die CSS-Datei wie folgt gebündelt:

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

Aufgrund der Bündelung suchte die Anwendung nach fonts im Verzeichnis /fonts im Anwendungsstammverzeichnis, das offensichtlich nicht vorhanden war.

Lange Rede, kurzer Sinn, am Ende änderten wir den Bundle-Namen:

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

Sobald der Bundle-Name geändert wurde, begannen die Dinge richtig zu funktionieren.

Die Änderung des Pfades funktioniert, aber die “beantwortete Frage” hat einen wichtigen Punkt verfehlt.

Wenn Sie _Layout.cshtml , das auf das Bundle _Layout.cshtml , _Layout.cshtml dies nicht mehr lokal und in Azure.

Sie müssen auch die _Layout.cshtml Seite aktualisieren!

Wenn Sie also Ihren Bundles-Pfad von Content/css zu Scripts/css ändern, müssen Sie _Layout.cshtml zu @Styles.Render("~/Scripts/css") ändern.

Wenn Sie eine theme.zip oder theme.rar heruntergeladen haben, die die Bootstrap-Symbole enthält, tun Sie Folgendes, bevor Sie extrahieren:

  • Rechtsklick auf das komprimierte Paket
  • Aktivieren Sie das Kontrollkästchen “Entsperren”, wenn es sichtbar ist

Damit die Symbole funktionieren, musste ich die Ordnerberechtigungen im Ordner, in dem sich das Bild befand, auf “Jeder = Lesen” setzen

Bei der Veröffentlichung im Azure-Webdienst ist dieser Fehler bei der ASP.NET Core 2.0 MVC-Webanwendung aufgetreten.

Ich hatte meine Stylesheets im folgenden Code.

        

Einfaches Kopieren und Einfügen der Links in jede Umgebung außer der Entwicklung hat funktioniert