[c#] IIS에서 CSS, 이미지, JS가로드되지 않음
내 모든 응용 프로그램은 정상적으로 작동했지만 IIS의 모든 사이트가 CSS, 이미지, 스크립트를로드하지 않습니다. 로그인 페이지로 리디렉션됩니다.
로그인하면 정상적으로 작동합니다. 예 : mysite.com/Account/LogOn?ReturnUrl=%2fpublic%2fimages%2ficons%2f41.png
내 로컬 컴퓨터에서 로그인하지 않고도 정상적으로 작동합니다.
답변
문제는 IIS가 정적 콘텐츠를 제공하지 않아서 설정할 수 있다는 것입니다.
출처 : http://adilmughal.com/blog/2011/11/iis-7-not-loading-css-and-image/
윈도우 10:
답변
Windows Server 2012 R2의 IIS 8.5에서 ASP.Net 4.5에 웹 응용 프로그램을 설치할 때 인증되지 않은 페이지에서 CSS, JS 및 이미지를로드하지 못하는 경우에도 같은 문제가있었습니다.
- 정적 콘텐츠 역할을 설치했습니다
- 내 웹 응용 프로그램은 IIS의 wwwroot 폴더에 있었고 모든 Windows 폴더 권한이 그대로 유지되었습니다 (IIS_IUSRS를 포함한 기본 권한).
- CSS, JS 및 이미지가 포함 된 모든 폴더에 대한 권한을 추가했습니다.
- Windows 공유에 웹 응용 프로그램 폴더가 있으므로 @ imran-rashid가 제안한 공유를 제거했습니다.
그러나 아무것도 문제를 해결하지 못한 것 같습니다. 그런 다음 익명 사용자의 ID를 App Pool Identity로 설정하려고 시도하고 작동하기 시작했습니다.
몇 시간 동안 고개를 저으며이 응답이 동료 개발자의 고통을 덜어주기를 바랍니다.
왜 이것이 효과가 있는지 알고 싶습니다. 이견있는 사람?
답변
비슷한 오류가 발생했습니다. 콘솔은 다음과 같습니다.
내 문제는 회사가 하나의 최상위 도메인을 사용하고 하위 도메인을 사용하지 않았기 때문에 하위 폴더에서 내 사이트를 실행하고 있다는 것입니다. 이처럼 :
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/
).
답변
web.config 에서 staticContent 섹션을 제거하십시오 .
<system.webServer>
<staticContent>
...
</staticContent>
</system.webServer>
답변
이것은 귀하의 질문에 대답하지 못할 수도 있지만 새로운 IIS 설치와 동일한 증상으로 머리를 두드리고 있습니다. CSS, JS 및 이미지가 표시되지 않았습니다. “정적 내용”역할이 IIS 7.5에 설치되어 있지 않기 때문입니다.
답변
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>