无法在 ASP.NET 中呈现 css

Posted

技术标签:

【中文标题】无法在 ASP.NET 中呈现 css【英文标题】:Cannot render css in ASP.NET 【发布时间】:2018-01-06 17:03:02 【问题描述】:

我修改了 main.min.css 和 main.full.css(设置另一种背景颜色),页面现在无法呈现 css。它只是一个 html

母版页:(带链接的缩短版)

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="ZASshop.master.cs" Inherits="ZASshop.NET.ZASshop" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
<%@ Register Assembly="ZAScontrols"    Namespace="ZAScontrols"    TagPrefix="zas" %>
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head id="MasterHead" runat="server">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

        <link href="/App_Firma/css/main.min.css" rel="stylesheet" type="text/css" media="screen" />
        <link href="/App_Firma/css/firm.css" rel="stylesheet" type="text/css" media="screen" />
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css">
        <link href="/App_Firma/DayPilot/Themes/scheduler_8.css" rel="stylesheet" type="text/css"/>
        <link href="/App_Firma/css/custom.css" rel="stylesheet" type="text/css" media="screen"/>
                <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

在此文件末尾的脚本链接:

<script src="/App_Firma/js/app.min.js"></script>

我在 Chrome 控制台中也收到了警告和错误:

LoginPage.aspx:7 资源解释为样式表但已传输 使用 MIME 类型文本/html: “http://localhost/LoginPage.aspx?ReturnUrl=%2fApp_Firma%2fcss%2fcustom.css”。 LoginPage.aspx:7 资源解释为样式表但已传输 使用 MIME 类型文本/html: “http://localhost/LoginPage.aspx?ReturnUrl=%2fApp_Firma%2fcss%2ffirm.css”。 LoginPage.aspx:7 资源解释为样式表但已传输 使用 MIME 类型文本/html: “http://localhost/LoginPage.aspx?ReturnUrl=%2fApp_Firma%2fcss%2fmain.min.css”。 LoginPage.aspx:7 资源解释为样式表但已传输 使用 MIME 类型文本/html: “http://localhost/LoginPage.aspx?ReturnUrl=%2fApp_Firma%2fDayPilot%2fThemes%2fscheduler_8.css”。 LoginPage.aspx?ReturnUrl=%2fApp_Firma%2fjs%2fapp.min.js:2 未捕获 SyntaxError:意外的令牌

【问题讨论】:

你修改了哪个库?是引导一个还是另一个? @PowerStar 我刚刚修改了 main.min.css 和 main.full.css。可能还有一些 .aspx 页面。 你做了什么样的编辑?是什么css文件?你在哪里使用图书馆? 请确认您提到的文件名正确。 如果您查看错误消息,很明显系统正试图通过登录页面重定向对这些样式表的请求......所以您设法使您的样式表内容是只对登录用户可见,这不是你想要的...... 【参考方案1】:

变化:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-
awesome/4.6.1/css/font-awesome.min.css">

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-
awesome/4.6.1/css/font-awesome.min.css" type="text/css"/>

你需要用'/'关闭标签

也检查了这个帖子,似乎是同样的问题:

Resource interpreted as Stylesheet but transferred with MIME type text/html in ASP.NET IIS

【讨论】:

尝试添加type="text/css"并正确关闭元标记 保持不变。我认为这可能与 web.config 相关 如果这不起作用,你能分享整个文件代码吗,请? 它有46k字符,超过了30k字符的限制,我可以放在哪里? 查看***.com/questions/6089070/…【参考方案2】:

您必须将带有 text/css 值的 .css MIME 类型添加到 IIS 中。目前,Web 服务器不理解 .css 的含义。

这将在内容类型响应标头值设置为 text/css 时起作用。

【讨论】:

我在 MIME 类型中有 .css(继承)【参考方案3】:

您需要在配置文件中排除 css 文件和图像进行身份验证,如下所示。使用位置标签可以排除单个文件或目录。

<location path="<relatevie path of your css files>">
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>

【讨论】:

我应该将它添加到 Web.config 的末尾吗?你能举一个相对路径的例子吗? 内部配置标签。 是的,在你的情况下是“/App_Firma/”。 我应该使用“\App_firma\css\”吗? 如果你也想允许脚本,那么使用 /App_firma/ 或者只使用 css 然后包括 css 目录。

以上是关于无法在 ASP.NET 中呈现 css的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net core 2.1 Web App 无法在 IIS 上正确呈现

如何将 ASP.NET MVC 视图呈现为字符串?

在 ASP.NET 5 中将 Razor 视图呈现为字符串

ASP.Net 按钮不会呈现背景图像

在 ASP.NET Core 站点中实现 Blazor - 组件不在视图中呈现

s-s-rS 报告未在 ASP.NET 网站中呈现