CSS,图像,JS无法在IIS中加载

Imr*_*hid 116 c# iis asp.net-mvc

我的所有应用程序都工作正常但突然IIS下的所有站点都没有加载CSS,图像,脚本.它重定向到登录页面.

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

在我的本地机器上它没有登录就可以正常工作

Mat*_*caj 172

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

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

  • 这节省了我的培根,你会认为这是默认启用但在Windows 10上它不是. (5认同)
  • Lame默认情况下不会选中此项. (3认同)
  • @RayLoveless我认为蹩脚的是MVC对这个IIS功能的依赖性很强,因为静态内容可以在MVC中运行.我认为他们不应该这么耦合.也许.NET Core会解决这个问题.:p (3认同)
  • 我有一个类似的问题,意识到这是一个安装问题,但启用静态内容似乎已经修复了它! (2认同)
  • 在距离上一次的两年之后,我们再次被同样的答案救了。 (2认同)

Moi*_*ala 160

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

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

然而,似乎没有什么能解决这个问题.最后我尝试将匿名用户的身份设置为App Pool Identity,然后开始工作.

单击身份验证功能 编辑匿名身份验证 更改为App Pool Identity

我把头撞了几个小时,希望这个回应可以为我的同事们带来痛苦.

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

  • 这对我有用,非常感谢 (4认同)
  • 几个小时 ?它花了我超过4.感谢上帝它帮助我:) (3认同)
  • 在共享wwwroot文件夹后,我突然遇到了这个问题.你的解决方案解决了 感谢您花时间添加它,以及细节. (3认同)
  • 这对我也有用。我相信这是因为“特定用户”没有文件夹位置的权限,而应用程序池的标识则具有该文件夹位置的权限。 (2认同)

Ogg*_*las 17

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

错误

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

host.com/app1

host.com/app2

我的代码看起来像这样包含在localhost上工作正常但在app1或app2中没有的脚本:

<link rel="stylesheet" type="text/css" href="/Content/css/font-awesome.min.css" />
Run Code Online (Sandbox Code Playgroud)

~为src 添加了波浪符号,然后一切正常:

<link rel="stylesheet" type="text/css" href="~/Content/css/font-awesome.min.css" />
Run Code Online (Sandbox Code Playgroud)

~vs的解释/:

  • / - 站点根目录
  • ~/ - 应用程序的根目录

/将返回site(http://host.com/)的根,

~/将返回application(http://host.com/app1/)的根.

  • 投票。我遇到了这个问题,该应用程序没有在舞台上加载,而是在生产中加载。我也将 @Url.Content() 与 ~/. 未在生产中进行测试,但我认为它会起作用 (2认同)

小智 15

这可能无法解答您的问题,但我一直在用新的IIS安装来解决相同的症状.CSS,JS和图像没有出现.是由于IIS 7.5中未安装"静态内容"角色.


int*_*dis 15

尝试从web.config中删除staticContent部分.

<system.webServer>
    <staticContent>
        ...
    </staticContent>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)


Tim*_*ora 7

您可能在web.config中启用了Windows身份验证.在本地计算机上,您的Windows凭据会自动传递并且可以正常运行.在实际站点上,您被视为匿名用户(IE设置可以控制此操作,但除非您确实知道自己在做什么,否则不要对其进行修改).

这会导致以下情况:

  • 您需要明确登录.
  • 登录页面上不提供脚本和CSS等资源,因为您未经过身份验证.

这没有打破,只是按预期工作,但要"修复"这个:

  • 如果您不想登录,请在web.config中更改身份验证类型.
  • 和/或在包含指定授权规则的CSS,图像,脚本等的目录中添加web.config.


Ali*_*jad 7

这是一个身份验证问题。就我而言,它通过以下步骤解决: 1- 转到 IIS 管理器,在左侧窗格中,展开服务器根目录并从站点节点中选择您的 Web 应用程序。2- 在主屏幕中,转至 IIS 部分并选择身份验证。3-启用匿名身份验证。4-然后,选择“编辑”并将“编辑匿名身份验证凭据”设置为“应用程序池标识”。

匿名身份验证凭证


Mat*_*s F 6

将其添加到您的web.config中

<location path="Images">
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
</location>
Run Code Online (Sandbox Code Playgroud)


Imr*_*hid 6

这是Windows权限问题我移动文件夹,它继承了错误的权限.当我移动到wwwroot文件夹并向iis用户添加权限时,它开始正常工作.


Roh*_*yas 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>
Run Code Online (Sandbox Code Playgroud)


Ama*_*wal 5

当 IIS 不渲染 JS、CSS、图像文件等静态内容时,就会出现此问题。

要解决此问题,您需要执行以下步骤:

转至控制面板 > 打开或关闭 Windows 功能 > Internet 信息服务 > 万维网服务 > 常见 HTTP 功能 > 静态内容。

确保静态内容已打开。

答对了。你就完成了。硬重新加载页面,您将能够看到所有静态内容。