我的所有应用程序都工作得很好,但突然间所有 IIS 下的站点都没有加载 css、图像和脚本。它重定向到登录页面。
如果我登录它就可以正常工作,例如 mysite.com/account/logon
在我的本地机器上,不用登录就可以正常工作。
您可能在 web.config 中启用了 Windows 身份验证。在本地计算机上,将自动传递 Windows 凭据并使其工作。在一个活动站点上,你被视为一个匿名用户(IE 设置可以控制这一点,但不要修改这一点,除非你真的知道你在做什么)。
这导致了以下情况:
这不是坏了,只是按预期工作,而是“修复”这一点:
把它添加到 web.config 中
<location path="Images"> <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </location>
在 web.config 文件的配置部分使用:
<location path="images"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location> <location path="css"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location> <location path="js"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web> </location>
这是 Windows 权限问题我移动的文件夹,它继承了错误的权限。当我移动到 wwwroot 文件夹并向 iis 用户添加权限时,它开始正常工作。
这可能不能回答你的问题,但是我一直在用一个新的 IIS 安装程序来敲打我的脑袋。CSS、 JS 和图像都没有显示出来。是由于 IIS 7.5中没有安装“静态内容”角色。
问题可能是 IIS 没有提供静态内容,您可以在这里设置:
资料来源: http://adilmughal.com/blog/2011/11/iis-7-not-loading-css-and-image/
视窗10:
我也有同样的问题,当我在 Windows Server 2012 R2上的 IIS 8.5中的 ASP.Net 4.5中安装我的 web 应用程序时,一个未经身份验证的页面不会加载 CSS、 JS 和图像。
然而,似乎没有什么能解决这个问题。最后,我尝试将匿名用户的身份设置为 App Pool Identity,然后它就开始工作了。
我敲了几个小时的头,希望这个回答能够为我的开发伙伴们减轻痛苦。
我真的很想知道为什么会有用,有什么想法吗?
对我来说,
IIS 可以用 localhost加载所有内容,但无法从 192.168.0.123加载我的模板文件 app.tag
localhost
192.168.0.123
app.tag
因为 .tag扩展名不在列表中。
.tag
为了解决这个问题:
使用 Internet 信息服务(IIS)
点击你的网站,你正试图加载图像
在 IIS 部分下,打开“身份验证”菜单并启用 Windows 身份验证。
对于我来说,在 web.config中添加这个解决了问题
web.config
<system.webServer> <modules runAllManagedModulesForAllRequests="true" > <remove name="UrlRoutingModule"/> </modules> </system.webServer>
一个可能的原因是您的应用程序需要在端口443(标准 SSL 端口)上运行,并且端口443已经在使用中。当 Skype 在他们的计算机上运行时,开发人员试图运行我们的应用程序时,我曾多次遇到这种情况。
难以置信的是,Skype 在443端口上运行。在我看来,这是一个可怕的设计缺陷。如果您看到您的应用程序试图在444而不是443上运行,那么关闭 Skype,问题就会消失。
过去,当使用生产站点的副本在本地主机测试环境中开发站点时,我发现了一个有用的建议。确保您注释掉了规范标记:
<!--<base href="http://www.example.com/">//-->
尝试从 Web.config中删除 静态内容部分。
<system.webServer> <staticContent> ... </staticContent> </system.webServer>
我有一个类似的错误,我的控制台看起来像这样:
我的问题是,我运行我的网站在一个子文件夹,因为该公司使用一个顶级域名,没有子域名。像这样:
Host.com/app1
Host.com/app2
我的代码看起来像这样,因为它包含了在 localhost 上运行良好但在 app1或 app2中不能运行的脚本:
<link rel="stylesheet" type="text/css" href="/Content/css/font-awesome.min.css" />
在 src 上增加了一个波浪形符号 ~,然后一切工作正常:
~
<link rel="stylesheet" type="text/css" href="~/Content/css/font-awesome.min.css" />
~对 /的解释:
/
~/
/将返回站点的根(http://host.com/) ,
http://host.com/
~/将返回应用程序的根(http://host.com/app1/)。
http://host.com/app1/
如果尝试了以上所有解决方案仍然存在问题,请考虑使用 ASP.NET 的 ResolveClientUrl ()方法。
例如:
而不是利用
<script src="~/dist/js/app.min.js" ></script>
用这个方法
<script src="<%= ResolveClientUrl("~/dist/js/app.min.js") %>" ></script>
这就是我的解决方案,对我帮助的一个朋友很有效!
我痛苦的一小时是因为在 web.config 中定义了 MIME 类型。我需要这个为开发服务器,但本地 IIS 讨厌它,因为它复制 MIME 类型... 一旦我删除这些从 web.config 的问题与 js,css,和图像没有加载走了。
我在 Configure 方法的 starup.cs 中添加了 app.UseStaticFiles();这段代码,然后它就被修复了。
app.UseStaticFiles();
并检查您对此文件夹的权限。
供图片使用
@Url.Content("~/assets/bg4.jpg")
使用这个
style="background-image:url(@Url.Content("~/assets/bg4.jpg"))
我也有同样的问题。对我来说,这是因为在 IIS 的服务器级将 Cache-Control 头设置为 no-cache,no-store。因此,对于我的应用程序,我必须在 web.config 中添加以下内容:
<httpProtocol> <customHeaders> <remove name="Cache-Control" /> </customHeaders> </httpProtocol>
这是一个身份验证问题,在我的例子中,通过以下步骤解决了这个问题: 1-转到 IIS 管理器,在左侧窗格中,展开服务器根目录并从 Sites 节点选择 Web 应用程序。 在主屏幕中,转到 IIS 部分并选择 Authentication。 3-启用匿名身份验证。 然后,选择“编辑”并将“编辑匿名身份验证凭据”设置为“应用程序池标识”。
在我的例子中,当没有任何 javascript、 png 或 css 文件被加载时,我尝试了上面的大部分答案,但似乎都没有成功。
我最终找到了“ 请求过滤器”,并且实际上必须添加. js、 . png、 . css 作为启用/接受的文件类型。
一旦我做了这个修改,所有的文件都被正确地送达了。
如果您在浏览器控制台中看到403个错误,请检查 MVC 包配置。包名称不应与项目中的任何现有文件夹名称匹配。
例如。
bundles.Add(new StyleBundle("~/Content/css")...
... 如果文件夹结构 $(ProjectDir) Content css存在于您的项目中,那么会给 IIS 造成问题,因为它试图在现有的文件夹中查找不存在的捆绑包内容。
而是使用类似于:
bundles.Add(new StyleBundle("~/Content/cssbundle")...
当 IIS 不呈现静态内容(如 JS、 CSS、 Image 文件)时,就会发生此问题。
要解决这个问题,你需要遵循以下步骤:
转到控制面板 > 开启或关闭视窗功能 > 互联网资讯服务 > 万维网服务 > 常见 HTTP 功能 > 静态内容。
确保打开静态内容。
找到了。你就完成了。重新加载页面,你就可以看到所有静态内容了。
我也有同样的问题,尝试了所有的建议,但一无所获。烦了我好几个小时。发现我的 ISP 由于某些原因阻塞了80端口。
建议: 检查流量。确保80端口在本地(即防火墙)和外部都能正常工作。
我也遇到过同样的问题,但是在从 ASP.NET MVC5迁移遗产时
从旧的 WindowsServer2012R2到 WindowsServer2022。
我的情况(感谢@Hiep 在这个帖子上)我发现了问题所在..。
我的旧 IIS 不支持(默认情况下)”。Woff”MIME 类型,所以我手动将其添加到 web.config 的特定部分,如下所示:
<staticContent> <mimeMap fileExtension=".woff2" mimeType="application/font-woff2"/> </staticContent>
当我尝试在 IIS 上查看该站点的“ MIME 类型”时,它会给出奇怪的配置错误,并且加载 IIS 的“ MIME 类型”区域没有 MIME 类型(零)
在我从 web.config 中“神奇地”删除了这段代码之后,所有正确加载到相应 IIS 部分和站点上的 MIME 类型都按照预期开始工作了。
谢谢,希普。