CSS,图像,JS不加载在IIS中

我的所有应用程序工作正常,但突然间IIS下的所有网站不加载CSS,图像,脚本。 它redirect到login页面。

如果我login它工作正常。 例如mysite.com/Account/LogOn?ReturnUrl=%2fpublic%2fimages%2ficons%2f41.png

在我的本地机器上工作正常,没有login。

问题可能是IIS没有提供静态内容,您可以在这里设置: 在这里输入图像描述

资料来源: http : //adilmughal.com/blog/2011/11/iis-7-not-loading-css-and-image/

我有同样的问题,当我在Windows Server 2012 R2上的IIS 8.5中的ASP.Net 4.5中安装我的Web应用程序时,未经身份validation的页面不会加载CSS,JS和图像。

  1. 我安装了静态内容angular色
  2. 我的Web应用程序位于IIS的wwwroot文件夹中,并且所有的Windows文件夹权限都是完整的(默认的,包括IIS_IUSRS)
  3. 我添加了包含CSS,JS和图像的所有文件夹的授权。
  4. 我有一个Windows共享上的Web应用程序文件夹,所以我删除了@ imran-rashidbuild议的共享

然而,似乎没有什么能解决问题的。 最后,我厌倦了将匿名用户的身份设置为App Pool Identity,并开始工作。

点击认证功能编辑匿名身份验证更改为应用程序池标识

我ban了几个小时,希望这个回应能够为我的开发人员节省痛苦。

我真的很想知道为什么这是工作。 有什么想法吗?

这可能不会回答你的问题,但我用一个新的IIS安装一直在用同样的症状敲我的头。 CSS,JS和图像没有显示出来。 是由于“静态内容”angular色未安装在IIS 7.5中。

尝试从web.config中移除staticContent部分。

<system.webServer> <staticContent> ... </staticContent> </system.webServer> 

我有一个类似的错误,我的控制台看起来像这样:

错误

我的问题是,我在一个子文件夹中运行我的网站,因为该公司正在使用一个顶级域名,没有子域名。 喜欢这个:

host.com/app1

host.com/app2

我的代码看起来像这样的脚本,在本地主机上运行良好,但不是在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" /> 

〜vs /解释

  • / – 网站的根
  • ~/ – 应用程序的根目录

/将返回网站的根目录( http://host.com/ ),

~/将返回应用程序的根目录( http://host.com/app1/ )。

将此添加到您的web.config

 <location path="Images"> <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </location> 

这是Windows权限问题,我移动它inheritance权限错误的文件夹。 当我移动到wwwroot文件夹,并添加权限,以iis用户开始工作正常。

您可能在您的web.config中启用了Windows身份validation。 在本地机器上,您的Windows凭据会自动传递,并且可以正常工作。 在一个现场,你被视为一个匿名用户(IE设置可以控制这个,但不要修改,除非你真的知道你在做什么)。

这导致以下内容:

  • 您需要明确login。
  • 资源,如脚本和CSS不会在login页面上提供,因为您没有通过身份validation。

这不是打破,只是按预期工作,但“解决”这一点:

  • 如果您不需要任何login,请更改web.config中的身份validationtypes。
  • 和/或在包含CSS,图像,脚本等的指定授权规则的目录中添加一个web.config文件。

在你的web.config文件的configuration部分使用这个:

 <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> 

对于我在web.config添加这个问题解决了这个问题

 <system.webServer> <modules runAllManagedModulesForAllRequests="true" > <remove name="UrlRoutingModule"/> </modules> </system.webServer> 

就我而言,

IIS可以加载一切与localhost ,但无法加载我的模板文件从192.168.0.123 app.tag

因为.tag扩展名不在列表中。

IIS MIME类型

要解决这个问题:

转到Internet信息服务(IIS)

点击您正在尝试加载图片的网站

在IIS部分下,打开身份validation菜单并启用Windows身份validation。

在使用生产站点的副本时,在本地主机testing环境中开发站点时,我发现了一个有用的build议。 确保你注释掉了标准的标签:

  <!--<base href="http://www.example.com/">//--> 

我的痛苦时刻是由于在web.config中定义了MIMEtypes。 我需要这个开发服务器,但本地IIS恨它,因为它重复的MIMEtypes…一旦我从web.config删除这些问题,js,css和图像不加载走开了。

造成这种情况的一个可能原因是,您的应用程序预计在端口443(标准SSL端口)上运行,并且端口443已被使用。 开发人员试图在Skype运行在他们的计算机上运行我们的应用程序时,我已经遇到过好几次了。

令人难以置信的是,Skype运行在443端口。在我看来,这是一个可怕的devise缺陷。 如果您看到您的应用程序试图运行444而不是443,closuresSkype,问题就会消失。

如果您尝试了上述所有解决scheme并仍然遇到问题,请考虑使用ASP.NET的ResolveClientUrl()方法。

例如的脚本:

而不是使用

 <script src="~/dist/js/app.min.js" ></script> 

使用该方法

 <script src="<%= ResolveClientUrl("~/dist/js/app.min.js") %>" ></script> 

这是我的解决scheme,为我正在帮助的朋友工作!