无法在 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 上正确呈现