我的所有应用程序都运行正常但突然IIS下的所有站点都没有加载css,图像,脚本。它重定向到登录页面。
如果我登录它工作正常。例如mysite.com/Account/LogOn?ReturnUrl=%2fpublic%2fimages%2ficons%2f41.png
在我的本地计算机上,无需登录即可正常工作。
答案 0 :(得分:164)
问题可能是IIS没有提供静态内容,您可以在此处设置:
运行'optionalfeature'命令并确保'Static Content'选项 检查。
来源:http://adilmughal.com/blog/2011/11/iis-7-not-loading-css-and-image/
我确实碰到了同样的问题。在Windows Server 2016上,您可以
server manager
和Add roles and features
,然后点击下一步Role-based or feature-based installation
,然后点击下一步Webserver (IIS)
并在Webserver
并选择general HTTP-features
并验证static content
或选择它,然后点击下一步由于它已经安装在我的服务器上,我重新启动了网站并且F5重新加载了页面 - 这确实有帮助。所有*.js
- 文件都与标题Content-Type: application/javascript
答案 1 :(得分:147)
我遇到了同样的问题,当我在Windows Server 2012 R2上的IIS 8.5中的ASP.Net 4.5中安装我的Web应用程序时,未经身份验证的页面不会加载CSS,JS和图像。
然而,似乎没有解决问题。最后,我尝试将匿名用户的身份设置为App Pool Identity,然后开始工作。
我把头撞了几个小时,希望这个回应可以为我的同事们带来痛苦。
我真的很想知道为什么这样做。有什么想法吗?
答案 2 :(得分:16)
我有类似的错误,我的控制台看起来像这样:
我的问题是我在一个子文件夹中运行我的网站,因为该公司使用的是一个顶级域而没有子域。像这样:
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" />
~
vs /
的说明:
/
- 网站根~/
- 应用程序的根目录 /
将返回网站的根目录(http://host.com/
),
~/
将返回应用程序的根目录(http://host.com/app1/
)。
答案 3 :(得分:14)
尝试从 web.config 中删除 staticContent 部分。
<ion-list ion-item *ngFor="let elt of Billerstatusstate | merge:Billerstatusnamelst" >
{{elt.name}} <button round>{{elt.state}}</button>
</ion-list>
答案 4 :(得分:14)
这可能无法解答您的问题,但我在使用新的IIS安装时遇到了同样的症状。 CSS,JS和图像没有出现。是由于IIS 7.5中未安装“静态内容”角色。
答案 5 :(得分:6)
将此添加到您的web.config
<location path="Images">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
答案 6 :(得分:6)
这是Windows权限问题我移动文件夹,它继承了错误的权限。当我移动到wwwroot文件夹并向iis用户添加权限时,它开始正常工作。
答案 7 :(得分:6)
您可能在web.config中启用了Windows身份验证。在本地计算机上,您的Windows凭据会自动传递并且可以正常运行。在实际站点上,您被视为匿名用户(IE设置可以控制此操作,但除非您确实知道自己在做什么,否则不要对其进行修改。)
这会导致以下情况:
这没有打破,只是按预期工作,但要“修复”这个:
答案 8 :(得分:5)
在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>
答案 9 :(得分:3)
这是身份验证问题。就我而言,它可以通过以下步骤解决: 1-转到IIS管理器,在左窗格中,展开服务器根目录,然后从“站点”节点中选择Web应用程序。 2-在主屏幕中,转到IIS部分,然后选择身份验证。 3-启用匿名身份验证。 4-然后,选择“编辑”,然后将“编辑匿名身份验证凭据”设置为“应用程序池标识”。
答案 10 :(得分:2)
我在web.config
中添加了这个问题解决了问题
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" >
<remove name="UrlRoutingModule"/>
</modules>
</system.webServer>
答案 11 :(得分:2)
我的痛苦时刻是由于在web.config中定义了MIME类型。我需要这个用于开发服务器,但本地IIS讨厌它,因为它复制了MIME类型...一旦我从web.config中删除了这些,js,css和图像没有加载的问题就消失了。
答案 12 :(得分:1)
答案 13 :(得分:1)
当IIS不呈现静态内容(如JS,CSS,图像文件)时,会发生此问题。
要解决此问题,您需要执行以下步骤:
转到控制面板>打开或关闭Windows功能> Internet信息服务>万维网服务>常用HTTP功能>静态内容。
确保已打开静态内容。
宾果。您完成了。硬重新加载页面,您将能够看到所有静态内容。
答案 14 :(得分:1)
我有同样的问题。对我而言,这是由于Cache-Control标头在IIS中的服务器级别设置为无缓存,无存储。因此,对于我的应用程序,我必须将以下内容添加到我的web.config中:
<httpProtocol>
<customHeaders>
<remove name="Cache-Control" />
</customHeaders>
</httpProtocol>
答案 15 :(得分:1)
如果您尝试了上述所有解决方案但仍有问题,请考虑使用ASP.NET的ResolveClientUrl()方法。
示例脚本:
而不是使用
<script src="~/dist/js/app.min.js" ></script>
使用方法
<script src="<%= ResolveClientUrl("~/dist/js/app.min.js") %>" ></script>
这是我的解决方案,对我正在帮助的朋友有用!
答案 16 :(得分:1)
我在使用生产网站副本时在localhost测试环境中开发网站时发现了一些建议。确保您注释掉规范标记:
<!--<base href="http://www.example.com/">//-->
答案 17 :(得分:1)
解决此问题:
转到Internet信息服务(IIS)
点击您尝试在
上加载图片的网站在IIS部分下,打开“身份验证”菜单并启用“Windows身份验证”。
答案 18 :(得分:0)
我将[root@localhost]# jq -r '.[] | "\(.acc_id),\(.name),\(.s3_path)"' abc.json
166211981,TEST_AE_LI_KEYS_003,opti-port/dcp/ue.1045199007354/11722990697
166211981,TEST_AE_LI_KEYS_001,opti-port/dcp/ue.1045199007354/11724290732
的这段代码添加到了Configure方法的starup.cs中,而不是固定的。
然后检查您对此文件夹的权限。
答案 19 :(得分:0)
供图像使用
@Url.Content("~/assets/bg4.jpg")
在样式上使用此
style="background-image:url(@Url.Content("~/assets/bg4.jpg"))
答案 20 :(得分:0)
一个可能的原因是您的应用程序希望在端口443(标准SSL端口)上运行,并且端口443已在使用中。在Skype在他们的计算机上运行时,开发人员尝试运行我们的应用程序时,我遇到过这种情况。
令人难以置信的是,Skype在443端口运行。在我看来,这是一个可怕的设计缺陷。如果您看到您的应用程序试图在444而不是443上运行,请关闭Skype,问题就会消失。
答案 21 :(得分:0)
在我的所有javascript,png或css文件都未加载的情况下,我尝试了上面的大多数答案,但似乎都没有成功。
我终于找到了“ 请求过滤器”,实际上不得不添加.js,.png,.css作为启用/接受的文件类型。
进行此更改后,所有文件都将得到正确处理。
答案 22 :(得分:0)
如果您在浏览器控制台中看到403错误,请检查您的MVC Bundle Config。捆绑包名称不应与项目中任何现有的文件夹名称匹配。
例如
bundles.Add(new StyleBundle("~/Content/css")...
...如果项目中存在文件夹结构 $(ProjectDir)\ Content \ css ,则会导致IIS问题,因为它会尝试在现有文件夹中查找不存在的捆绑包内容
相反,只需使用类似的内容:
bundles.Add(new StyleBundle("~/Content/cssbundle")...
答案 23 :(得分:0)
我遇到了完全相同的问题,尝试了所有建议,但一无所获。烦我几个小时。原来我的ISP由于某些原因阻止了端口80。
建议:检查您的流量。确保端口80在本地(即防火墙)和外部均可工作。