webentwicklung-frage-antwort-db.com.de

Die ASP.NET-Seite lädt keine CSS-Stile

Dies ist eine einfache Website in ASP.NET mit C # unter Verwendung von VS 2010. Ich habe folgende Verzeichnisstruktur für dieses Projekt:

enter image description here

Die Startseite ist Default.aspx und lädt perfekt. Wenn ich jedoch die Seite Interface/SystemAdminLogin.aspx von der Standardseite öffne, wird sie ohne CSS-Stile geladen. Ich habe ein CSS-Stylesheet in der Masterseite importiert. So verweise ich auf die MasterPage-Datei in beiden ASPX-Dateien:

Default.aspx:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

SystemAdminLogin.aspx:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="SystemAdminLogin.aspx.cs" Inherits="_Default" %>

Ich sehe keinen Fehler mit meinem Code, aber warum Seite im Schnittstellenordner nicht CSS-Stile lädt ?? Bitte helfen.

Hier ist der Master-Seitencode, in den ich die CSS-Datei importiere:

 <%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="SiteMaster" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Facial Recognition Bank System</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="Styles/style.css" rel="stylesheet" type="text/css" media="screen" />
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
</head>

Und hier ist der Teil des CSS-Dateicodes:

body {
margin: 0;
padding: 0;
background: #fff url(../images/img01.jpg) repeat-x left top;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000;
}
13
Azeem

Die in Ihrer Masterseite enthaltenen Stylesheets verwenden relative Pfade. 

Geben Sie Ihre Stylesheet-Links mit runat=server an und stellen Sie ihnen den virtuellen Web-Root-Pfad (~) voran.

<link href="~/Styles/style.css" rel="stylesheet" type="text/css" media="screen" runat="server" />

ODER:

<link href="/Styles/style.css" rel="stylesheet" type="text/css" media="screen" runat="server" />

Denken Sie jedoch daran, dass die erste Option empfohlen wird. Die zweite Funktion funktioniert nicht, wenn Sie Ihre Site in einem virtual-Verzeichnis veröffentlichen.

Nach dem letzten Kommentar ...

Die Bild-URLs in CSS sollten ebenfalls aktualisiert werden, um keine relativen Pfade zu verwenden oder path-Durchlauf (../) auszuführen.

hintergrund: #fff-URL (images/img01.jpg) repeat-x left top;

Für diese Option müssen Sie den Bilderordner innerhalb des Styles-Ordners verschieben (dies ist eine gute Vorgehensweise).

Finales Update:

Anscheinend muss auch das head-Element runat=server sein, damit relative Pfade von ASP.NET (~) in link-Elementen mit runat=server funktionieren.

23
Marcel N.

Das funktioniert für mich auf meinen Masterseiten:

<asp:content ID="xContent" ContentPlaceHolderID="headContent" runat="server">
<link rel="stylesheet" type="text/css" href="<%=Request.ApplicationPath%>Folder/Folder/Filename.css" />
</asp:Content>'
1
user3123048

Ich habe festgestellt, dass ASPNETCORE_ENVIRONMENT für Debug auf Development gesetzt war. Und in der _Layout.cshtml hatte ich die asp-append-Version vermisst.

<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - SALUS UAV</title>

<environment include="Development">
    <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
    <link rel="stylesheet" href="~/css/site.css" />
</environment>
<environment exclude="Development">
    <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>

Ich habe das behoben und alles war wieder gut:

<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - SALUS UAV</title>

<environment include="Development">
    <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
    <link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
</environment>
<environment exclude="Development">
    <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>

0
Johan Grobler

Das funktioniert für mich auf meinen Masterseiten:

<asp:content ID="xContent" ContentPlaceHolderID="headContent" runat="server">
<link rel="stylesheet" type="text/css" href="<%=Request.ApplicationPath%>Folder/Folder/Filename.css" />
</asp:Content>
0
user3123048

Versuchen Sie es mit (~ in Ihrem Pfad):

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="SiteMaster" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Facial Recognition Bank System</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="~/Styles/style.css" runat="server" rel="stylesheet" type="text/css" media="screen" />
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
</head>
0
Aghilas Yakoub

Fügen Sie dem Kopfattribut runat = "server" hinzu und stellen Sie außerdem sicher, dass der Link das Stammverzeichnis als ("~/path to css") angreift

<head runat="server">
  <title>Page Title Here</title>
  <link href="~/css/main.css" rel="stylesheet" type="text/css" />
 <asp:ContentPlaceHolder ID="HeadContent" runat="server" />
</head>

0
Godwin Awojobi