перестал работать css asp.net - PullRequest
0 голосов
/ 23 июня 2011

Я пересылаю вопрос, так как он сильно изменился с тех пор, как у меня были проблемы с ним изначально, я знаю, где проблема, но я не знаю, как ее исправить, или ее причину вообще.

Итак, у меня есть 2 основных файла, один для страницы входа, а другой для внутреннего содержимого.У меня также есть файл default.aspx и файл logout.aspx.Они оба используют MasterPage.master, который является начальной страницей.Что я обнаружил, так это то, что когда я исключаю Logout.aspx из проекта и запускаю его, начальная страница сайта использует файл .css.Когда я включаю logout.aspx для отладки программы, на первом экране сначала используется .css, затем, когда я вхожу и выхожу, он показывает default.aspx без .css.Если я попытаюсь снова отладить страницу, то на начальном экране больше не используется .css.

Мой мастер-класс имеет следующее:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link href="~/StyleSheet.css" rel="stylesheet" type="text/css" />
    <asp:ContentPlaceHolder id="head" runat="server">
    </asp:ContentPlaceHolder>
</head>

<body>
    <form runat="server">
        <div class="login">
            <div class="container">
               <div class="header">
                   <h1 id="site-name">
                        <font color="black" size="5">SES Users Admin</font>
                   </h1>
                </div>
                 <!--Hello Content -->
                <div class="content">
                        <asp:Label ID="lblUsername" runat="server" Text="Username"></asp:Label>
                        &nbsp;&nbsp;&nbsp;
                        <asp:TextBox ID="txtUsername" runat="server" Height="21px" 
                            style="margin-left: 2px" Width="133px"></asp:TextBox>
                        <br /><br />
                        <asp:Label ID="lblPassword" runat="server" Text="Password"></asp:Label>
                        &nbsp;&nbsp;&nbsp;
                        <asp:TextBox ID="txtPassword" runat="server" TextMode="Password" Height="20px" 
                            style="margin-left: 4px" Width="133px"></asp:TextBox>
                        <br /><br />
                        <div class="button">
                        <asp:label id="lblResult" runat="server" Width="100%"></asp:label>
                            <asp:Button ID="btnLogin" runat="server" Text="Login" OnClick="btnlogin_Click" 
                                Width="57px" Height="21px"/>
                        </div>
                </div>

            </div>

        </div>
            <asp:ContentPlaceHolder ID="MainContent" runat="server"/>
    </form>
</body>
</html>

. По умолчанию aspx и default.cs пусты, как и:

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

    <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="head">
    </asp:Content>
    <asp:Content ID="MainerContent" runat="server" ContentPlaceHolderID="MainContent">

    </asp:Content>

А также выход из системы, за исключением выхода из системы.aspx.cs, который содержит функцию выхода из системы:

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

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="head">
</asp:Content>
<asp:Content ID="MainerContent" runat="server" ContentPlaceHolderID="MainContent">

</asp:Content>

CS

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using HelloApp;

public partial class Logout : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        FormsAuthentication.SignOut();
        Response.Redirect("default.aspx");

    }
}

Ответы [ 4 ]

1 голос
/ 23 июня 2011

Я подозреваю, что ваш Site.css не находится в той же папке, что и ваша MasterPage / ContentPage.

Если ваша ссылка на таблицу стилей просто Site.css, то в какой бы папке ни находилась ваша папка MasterPage / ContentPage или просто ContentPage, она будет искать таблицу стилей в этой папке.

например. при использовании <link rel="Stylesheet" type="text/css" href="Site.css" />

/Folder1/ContentPage.aspx will be looking for /Folder1/Site.css

Если вы измените свою таблицу стилей на использование <link rel="Stylesheet" type="text/css" href="/Site.css" /> Тогда ваш веб-сайт будет искать таблицу стилей в корневом каталоге. ОДНАКО, если ваш сайт работает как

`http://localhost:1234/WebsiteFolder/ContentPage'

«WebsiteFolder», затем, имея /Site.css, будет искать файл css вне «WebsiteFolder»

Пожалуйста, опубликуйте структуру папок вашего сайта, а также укажите, работает ли ваш сайт с виртуальным путем. Чтобы найти виртуальный путь, просмотрите свойства веб-сайта.

1 голос
/ 23 июня 2011

Попробуйте просмотреть источник страницы на сайте и найдите тег <link ...>.На какой файл CSS он указывает?

1 голос
/ 23 июня 2011

Посмотрите на запросы браузера в firebug / fiddler / charles , чтобы увидеть, что происходит с запросом на файл CSS.

0 голосов
/ 23 июня 2011

используйте

<link href="~/Site.css" runat="server" id="link1" rel="stylesheet" type="text/css" />

вместо

<link href="Site.css" rel="stylesheet" type="text/css" />

после этого css загружается правильно и работает нормально ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...