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和图像。
- 我安装了静态内容angular色
- 我的Web应用程序位于IIS的wwwroot文件夹中,并且所有的Windows文件夹权限都是完整的(默认的,包括IIS_IUSRS)
- 我添加了包含CSS,JS和图像的所有文件夹的授权。
- 我有一个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
扩展名不在列表中。
要解决这个问题:
转到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,为我正在帮助的朋友工作!