C# 未在IIS中加载CSS、图像、JS
我的所有应用程序都运行良好,但突然间IIS下的所有站点都没有加载css、图像和脚本。它重定向到登录页面 如果我登录,它可以正常工作。e、 g.mysite.com/Account/LogOn?返回URL=%2fpublic%2fimages%2ficons%2f41.pngC# 未在IIS中加载CSS、图像、JS,c#,asp.net-mvc,iis,C#,Asp.net Mvc,Iis,我的所有应用程序都运行良好,但突然间IIS下的所有站点都没有加载css、图像和脚本。它重定向到登录页面 如果我登录,它可以正常工作。e、 g.mysite.com/Account/LogOn?返回URL=%2fpublic%2fimages%2ficons%2f41.png 在我的本地计算机上,无需登录即可正常工作。您的web.config中可能已启用Windows身份验证。在本地计算机上,您的Windows凭据将自动传递并正常工作。在实时站点上,您将被视为匿名用户(IE设置可以控制这一点,但除
在我的本地计算机上,无需登录即可正常工作。您的web.config中可能已启用Windows身份验证。在本地计算机上,您的Windows凭据将自动传递并正常工作。在实时站点上,您将被视为匿名用户(IE设置可以控制这一点,但除非您确实知道自己在做什么,否则不要修改此设置) 这导致以下情况:
- 您需要显式登录
- 脚本和CSS等资源不会在登录页面上提供,因为您没有经过身份验证
- 如果不需要任何登录,请更改web.config中的身份验证类型
- 和/或在包含CSS、图像、脚本等的目录中添加一个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没有提供静态内容,您可以在此处设置:
资料来源:
Windows 10:
我也遇到了同样的问题,当我在Windows Server 2012 R2的IIS 8.5中的ASP.Net 4.5中安装web应用程序时,未经验证的页面不会加载CSS、JS和图像
localhost
加载所有内容,但无法从192.168.0.123
加载我的模板文件app.tag
因为.tag
扩展名不在列表中
要解决此问题,请执行以下操作:
转到Internet信息服务(IIS)
单击您试图加载图像的网站
在IIS部分下,打开“身份验证”菜单并启用Windows身份验证。对于我来说,在
web.config
中添加此项解决了问题
造成这种情况的一个可能原因是应用程序希望在端口443(标准SSL端口)上运行,而端口443已经在使用中。当Skype在他们的计算机上运行时,开发人员试图运行我们的应用程序,我已经多次遇到这种情况
令人难以置信的是,Skype在端口443上运行。在我看来,这是一个可怕的设计缺陷。如果您看到您的应用程序试图在444而不是443上运行,请关闭Skype,问题就会消失。过去,在使用生产站点的副本在localhost测试环境中开发站点时,我发现有一个建议很有帮助。确保注释掉规范标记:
<!--<base href="http://www.example.com/">//-->
尝试从web.config中删除staticContent部分
<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" />
对~
与/
的解释:
-站点根目录/
-应用程序的根目录~/
/
将返回站点的根(http://host.com/
)
~/
将返回应用程序的根(http://host.com/app1/ < p>如果您尝试了上述所有解决方案并仍然存在问题,请考虑使用ASP.NET的方法SevVCIELURURL()。
脚本,例如:
而不是使用
<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和图像的问题就消失了。我添加了app.UseStaticFiles()代码>此代码位于Configure方法的starup.cs中,它是固定的
并检查您对此文件夹的权限。有关图像的使用
@Url.Content("~/assets/bg4.jpg")
在样式上使用此
style="background-image:url(@Url.Content("~/assets/bg4.jpg"))
我也有同样的问题。对我来说,这是因为在IIS的服务器级别将缓存控制头设置为“无缓存,无存储”。因此,对于我的应用程序,我必须在我的web.config中添加以下内容:
<httpProtocol>
<customHeaders>
<remove name="Cache-Control" />
</customHeaders>
</httpProtocol>
此i
<httpProtocol>
<customHeaders>
<remove name="Cache-Control" />
</customHeaders>
</httpProtocol>
bundles.Add(new StyleBundle("~/Content/css")...
bundles.Add(new StyleBundle("~/Content/cssbundle")...