Вопрос по css, visual-studio-2010, asp.net, c# – Страница ASP.NET не загружает стили CSS

13

Это простой сайт в ASP.NET с C # с использованием VS 2010. У меня есть следующая структура каталогов для этого проекта:

enter image description here

Начальная страницаDefault.aspx и он отлично загружается. Но когда я открываю страницуInterface/SystemAdminLogin.aspx со страницы по умолчанию, он загружается без стилей CSS. Я импортировал таблицу стилей CSS в мастер-страницу. Вот как я ссылаюсь на файл MasterPage в обоих .aspx файлах:

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" %>

Я не вижу никакой ошибки с моим кодом, но почему страница в папке интерфейса не загружает стили CSS? Пожалуйста помоги.

Вот код главной страницы, куда я импортирую файл CSS:

 <%@ 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>

А вот часть кода файла CSS:

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;
}
@AshwinSingh нет, не использую IIS. Azeem
@ Азим попробуйте загрузить страницу без использования данных кэша, нажмите CTRL + F5. antonio
Возможно, вам будет проще использовать темы ASP.Net - это позаботится обо всем за вас. Увидетьstackoverflow.com/a/8564035/1073107 или страница MSDNmsdn.microsoft.com/en-us/library/ykzx33wh.aspx dash
Вы используете IIS? Ashwin Singh
Вставьте часть файла мастер-страницы, с которой связан CSS Marek Musielak

Ваш Ответ

6   ответов
0

Попробуйте с (~ на вашем пути):

<%@ 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>
Error: User Rate Limit ExceededlinkError: User Rate Limit Exceededrunat=serverError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Azeem
Error: User Rate Limit Exceeded
0

Я обнаружил, что для отладки для ASPNETCORE_ENVIRONMENT задано значение Development. И в _Layout.cshtml у меня отсутствовала версия asp-append-version.

<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>

Я исправил это, и все снова было хорошо:

<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>

1

Это работает для меня на моих главных страницах:

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

Это работает для меня на моих главных страницах:

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

Добавить runat = & quot; сервер & quot; к атрибуту head, а также убедитесь, что ссылка нацелена на корень, как в (& quot; ~ / path to css & quot;)

<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>

Error: User Rate Limit ExceededlinkError: User Rate Limit Exceededrunat=serverError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Azeem
23

Таблицы стилей, включенные в вашу главную страницу, используют относительные пути.

Укажите ваши ссылки на таблицы стилей сrunat=server и префикс их с корневым путем виртуального веб (~):

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

ИЛИ ЖЕ:

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

Но имейте в виду, что рекомендуется первый вариант. Второй не будет работать, когда вы публикуете свой сайт вvirtual directory.

После последнего комментария ...

URL-адреса изображений в CSS также должны быть обновлены, чтобы не использовать относительные пути или делать какие-либоpath traversal (../).

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

Для этого варианта вам необходимо переместить папку изображений в папку «Стили» (это рекомендуется сделать).

Final update:

Похоже, чтоhead элемент также должен бытьrunat=server для того, чтобы относительные пути ASP.NET (~) работали вlink элементы сrunat=server.

Error: User Rate Limit Exceeded Azeem
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Azeem
Error: User Rate Limit Exceeded Azeem
Error: User Rate Limit Exceeded

Похожие вопросы