내 모든 응용 프로그램은 정상적으로 작동했지만 IIS의 모든 사이트가 CSS, 이미지, 스크립트를로드하지 않습니다. 로그인 페이지로 리디렉션됩니다.
로그인하면 정상적으로 작동합니다. 예 : mysite.com/Account/LogOn?ReturnUrl=%2fpublic%2fimages%2ficons%2f41.png
내 로컬 컴퓨터에서 로그인하지 않고도 정상적으로 작동합니다.
내 모든 응용 프로그램은 정상적으로 작동했지만 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 및 이미지를로드하지 못하는 경우에도 같은 문제가있었습니다.
그러나 아무것도 문제를 해결하지 못한 것 같습니다. 그런 다음 익명 사용자의 ID를 App Pool Identity로 설정하려고 시도하고 작동하기 시작했습니다.
몇 시간 동안 고개를 저으며이 응답이 동료 개발자의 고통을 덜어주기를 바랍니다.
왜 이것이 효과가 있는지 알고 싶습니다. 이견있는 사람?
CPUName\IIS_IUSRS
되었지만 여전히로드되지 않습니다. 다시 감사합니다!
비슷한 오류가 발생했습니다. 콘솔은 다음과 같습니다.
내 문제는 회사가 하나의 최상위 도메인을 사용하고 하위 도메인을 사용하지 않았기 때문에 하위 폴더에서 내 사이트를 실행하고 있다는 것입니다. 이처럼 :
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 설정은이를 제어 할 수 있지만 실제로 수행중인 작업을 모르면이를 수정하지 마십시오).
이로 인해 다음이 발생합니다.
이것은 깨지지 않고 의도 된대로 작동하지만이를 "수정"합니다.
이것을 web.config에 추가하십시오
<location path="Images">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
"~/Images"
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>
내 고통의 시간은 web.config에서 MIME 유형을 정의했기 때문에 발생했습니다. 개발 서버에는 이것을 필요로했지만 로컬 IIS는 MIME 유형을 복제했기 때문에 싫어했습니다 ... 일단 web.config에서이를 제거하면 js, css 및 이미지가로드되지 않는 문제가 사라졌습니다.
이것은 인증 문제입니다. 필자의 경우 다음 단계로 해결되었습니다. 1- 왼쪽 창에서 IIS 관리자로 이동하여 서버 루트를 확장하고 사이트 노드에서 웹 응용 프로그램을 선택하십시오. 2- 홈 화면에서 IIS 섹션으로 이동하여 인증을 선택하십시오. 3- 익명 인증을 활성화합니다. 4- 그런 다음 편집을 선택하고 익명 인증 자격 증명 편집을 응용 프로그램 풀 ID로 설정합니다.
이 문제를 해결하려면
인터넷 정보 서비스 (IIS)로 이동
이미지를로드하려는 웹 사이트를 클릭하십시오
IIS 섹션에서 인증 메뉴를 열고 Windows 인증 사용을 설정하십시오.
프로덕션 사이트 사본으로 작업 할 때 localhost 테스트 환경에서 사이트를 개발할 때 과거에 도움이 된 한 가지 제안이 있습니다. 표준 태그를 주석 처리했는지 확인하십시오.
<!--<base href="http://www.example.com/">//-->
이미지 사용
@Url.Content("~/assets/bg4.jpg")
스타일에 이것을 사용하십시오
style="background-image:url(@Url.Content("~/assets/bg4.jpg"))
브라우저 콘솔에 403 오류가 발생하면 MVC 번들 구성을 확인하십시오. 번들 이름은 프로젝트의 기존 폴더 이름과 일치하지 않아야합니다.
예.
bundles.Add(new StyleBundle("~/Content/css")...
... $ (ProjectDir) \ Content \ css 폴더 구조 가 기존 폴더 내에서 존재하지 않는 번들 컨텐츠를 찾기 때문에 프로젝트에 존재하는 경우 IIS에 문제가 발생할 수 있습니다 .
대신 다음과 같은 것을 사용하십시오.
bundles.Add(new StyleBundle("~/Content/cssbundle")...