C# 未在IIS中加载CSS、图像、JS

C# 未在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设置可以控制这一点,但除

我的所有应用程序都运行良好,但突然间IIS下的所有站点都没有加载css、图像和脚本。它重定向到登录页面

如果我登录,它可以正常工作。e、 g.mysite.com/Account/LogOn?返回URL=%2fpublic%2fimages%2ficons%2f41.png


在我的本地计算机上,无需登录即可正常工作。

您的web.config中可能已启用Windows身份验证。在本地计算机上,您的Windows凭据将自动传递并正常工作。在实时站点上,您将被视为匿名用户(IE设置可以控制这一点,但除非您确实知道自己在做什么,否则不要修改此设置)

这导致以下情况:

  • 您需要显式登录
  • 脚本和CSS等资源不会在登录页面上提供,因为您没有经过身份验证
这不是坏的,只是按预期工作,但要“修复”这一点:

  • 如果不需要任何登录,请更改web.config中的身份验证类型
  • 和/或在包含CSS、图像、脚本等的目录中添加一个web.config,用于指定授权规则

将此添加到您的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和图像

  • 我安装了静态内容角色
  • 我的Web应用程序位于IIS的wwwroot文件夹中,并且所有Windows文件夹权限都完好无损(默认权限,包括IIS_IUSR)
  • 我为所有包含CSS、JS和图像的文件夹添加了授权
  • 我在windows共享上有web应用程序文件夹,因此我按照@imran rashid的建议删除了共享
  • 然而,似乎什么也解决不了这个问题。最后,我尝试将匿名用户的身份设置为应用程序池身份,它开始工作。

    我敲了几个小时的脑袋,希望这个回应能为我的开发伙伴们省去痛苦

    我真的很想知道为什么会这样。有什么想法吗?

    就我而言

    IIS可以使用
    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")...