C# · 12月 25, 2021

c# – ASP.NET页面没有加载CSS样式

这是一个使用VS 2010的ASP.NET中的简单网站,C#使用.我有以下目录结构:

起始页面是Default.aspx,它完全加载.但是当我从Default页面打开Interface / SystemAdminLogin.aspx页面时,它加载没有CSS样式.我在主页中导入了CSS样式表.以下是我在两个.aspx文件中引用MasterPage文件的方式:

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

我没有看到我的代码有任何错误,但为什么在Interface文件夹中的页面没有加载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;}解决方法 主页中包含的样式表使用相对路径.

使用runat = server指定样式表链接,并使用虚拟Web根路径(〜)对其进行前缀:

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

但请记住,建议使用第一个选项.当您将网站发布到虚拟目录中时,第二个将无法正常工作.

最后评论后…

CSS中的图像URL也应该更新,以便不使用相对路径或进行任何路径遍历(../).

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

对于此选项,您需要将图像文件夹移动到“样式”文件夹中(这是一个很好的做法).

最后更新:

看起来头元素也需要是runat = server,以使ASP.NET相对路径(〜)在链接元素中使用runat = server.