2012-06-23 27 views
13

Đây là một trang web đơn giản trong ASP.NET với C# sử dụng VS 2010. Tôi đã theo cấu trúc thư mục cho dự án này:trang ASP.NET không tải phong cách CSS

enter image description here

Các trang bắt đầu là Default.aspx và nó tải hoàn hảo. Nhưng khi tôi mở trang Interface/SystemAdminLogin.aspx từ trang Mặc định, trang tải không có kiểu CSS. Tôi đã nhập bảng định kiểu CSS trong Trang chính. Dưới đây là làm thế nào tôi tham khảo tập tin MasterPage trong cả hai tập tin .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" %> 

Tôi không thấy bất kỳ sai lầm với mã của tôi nhưng tại sao trang trong thư mục Interface không tải các kiểu CSS ?? Xin vui lòng giúp đỡ.

Đây là mã trang chủ nơi tôi đang nhập khẩu tập tin 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> 

Và đây là một phần của mã tập tin 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; 
} 
+2

Dán phần của tập tin trang Thạc sĩ nơi css được liên kết –

+0

Bạn đang sử dụng IIS? –

+0

Bạn có thể tìm thấy nó dễ dàng hơn để sử dụng các chủ đề ASP.Net - điều này sẽ chăm sóc tất cả điều này cho bạn. Xem http://stackoverflow.com/a/8564035/1073107 hoặc trang MSDN http://msdn.microsoft.com/en-us/library/ykzx33wh.aspx – dash

Trả lời

21

Các biểu định kiểu được nhúng vào trang chủ của bạn đang sử dụng đường dẫn tương đối.

Chỉ định liên kết stylesheet của bạn với runat=server và tiền tố họ với đường dẫn gốc web ảo (~):

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

OR:

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

Nhưng hãy nhớ rằng tùy chọn đầu tiên được khuyến khích. Thông tin thứ hai sẽ không hoạt động khi bạn xuất bản trang web của mình trong một thư mục ảo ảo.

Sau khi nhắn lời nhắn cuối ...

URL hình ảnh trong CSSs cần được cập nhật là tốt, để không sử dụng đường dẫn tương đối hoặc làm bất cứ đường traversal (../).

nền: #fff url (images/img01.jpg) lặp lại-x trên cùng bên trái;

Đối với tùy chọn này, bạn sẽ cần di chuyển thư mục hình ảnh bên trong thư mục Kiểu (đó là cách hay để thực hiện).

cuối cùng cập nhật:

Hình như rằng phần tử head cũng cần phải được runat=server để cho đường dẫn tương đối ASP.NET (~) để làm việc trong link yếu tố với runat=server.

+0

Tôi đã thêm mã trang chính vào bài đăng của mình. – Azeem

+0

Đã cập nhật câu trả lời. –

+0

Xin chào, khi tôi sử dụng tùy chọn đầu tiên thì Default.aspx cũng không tải kiểu CSS ... Tôi đã thêm một phần mã CSS vào bài đăng. Hãy nhìn vào nó. cảm ơn – Azeem

0

Hãy thử với (~ trong con đường của bạn):

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

Điều đó sẽ không hiệu quả. Phần tử 'link' phải bằng' runat = server' để cho các đường dẫn ảo ASP.NET hoạt động. –

+0

yes @the coon là đúng. ~ Không làm việc với hoặc không có thuộc tính máy chủ runat ... – Azeem

+0

Có đúng là –

0

này làm việc cho tôi trong các trang chủ của tôi:

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

này làm việc cho tôi trong các trang chủ của tôi:

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

Cảm ơn bạn! Tôi đã dành nhiều giờ cố gắng để có được một tập tin CSS tùy chỉnh để làm việc trên mô-đun DNN của tôi, và đây là điều duy nhất tôi đã tìm thấy rằng các công trình ngắn bao gồm CSS trong