15

これは、VS 2010を使用したC#を使用したASP.NETの単純なWebサイトです。このプロジェクトのディレクトリ構造は次のとおりです。

ここに画像の説明を入力してください

開始ページはDefault.aspxであり、完全にロードされます。しかし、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" %>

コードに間違いはありませんが、インターフェイスフォルダーのページが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;
}
4

5 に答える 5

29

マスターページに含まれているスタイルシートは、相対パスを使用しています。

スタイルシートのリンクをで指定し、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" />

ただし、最初のオプションが推奨されることに注意してください。2つ目は、サイトを仮想ディレクトリに公開する場合は機能しません。

最後のコメントの後...

相対パスを使用したり、パストラバーサル(../)を実行したりしないように、CSSの画像URLも更新する必要があります。

背景:#fff url(images / img01.jpg)repeat-x左上;

このオプションでは、画像フォルダをスタイルフォルダ内に移動する必要があります(移動することをお勧めします)。

最終更新:

ASP.NET相対パス(〜)が。を含む要素内で機能するためには、head要素も必要であるように見えます。runat=serverlinkrunat=server

于 2012-06-23T10:18:14.027 に答える
2

これは私のマスターページで私のために働きます:

<asp:content ID="xContent" ContentPlaceHolderID="headContent" runat="server">
<link rel="stylesheet" type="text/css" href="<%=Request.ApplicationPath%>Folder/Folder/Filename.css" />
</asp:Content>'
于 2014-08-05T15:34:09.123 に答える
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>
于 2012-06-23T10:25:15.937 に答える
0

head属性に追加runat="server"し、リンクが( "〜/ path to css")のようにルートをターゲットにしていることも確認します

<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>
于 2016-02-15T11:49:39.927 に答える
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>

于 2019-02-08T15:17:04.763 に答える