2012-03-05 2 views
4

ASP.Net MVC 4로 작성된 작은 웹 응용 프로그램을 배포했습니다. JS/CSS 번들이 제대로 설정되었으며 로컬로 잘 작동합니다. 문제는 IIS 6 서버에 배포 할 때 번들이 작동하지 않는 것입니다. js/css가 다운로드되지 않고 스크립트의 js 링크로 이동하려고하면 404가됩니다.ASP.Net MVC 배포시 MVC JS/CSS 번들이 작동하지 않습니다.

MVC 4를 IIS 6에 배포하고이 작업을 수행 한 사람이 있습니까?

+0

이것이 라우팅 문제가 될 것이라고 생각합니다. IIS6에서 MVC를 실행하기 위해 라우팅 설정을 변경해야한다고 생각합니다. 세부 정보가없는 것 같습니다. 그래도 손을. ( – dougajmcdonald

답변

3

문제는 ASP.Net 4.0 용으로 구성된 기본 웹 사이트에서 ASP.Net 4.0 용으로 구성된 가상 디렉터리로 실행하고 있다는 것입니다.

새 웹 사이트를 만들고 asp.net 4.0으로 설정하면 모든 것이 완벽하게 작동합니다. 이 게시물에 따라 Haacked 확장없는 URL은 IIS 6의 대부분의 인스턴스에서 작동해야합니다.

2

번들처럼 확장명이 URL을 통해 제공됩니다 :

IIS 6 아웃 오브 박스 확장명이 URL을 지원하지 않습니다. /js 또는 /css으로 끝나는 URL을 발견하면 정확히이 URL을 aspnet_isapi.dll 처리기 (ASP.NET)와 연결해야한다는 단서가 없습니다.

확장 성없는 URL을 사용하기 위해 Phil Haack의 blog post에서 ASP.NET MVC 용 IIS 6을 구성하는 방법을 설명합니다. ASP.NET MVC 3에 관한 내용이지만 ASP.NET MVC 4와 정확히 동일합니다.

아, 통합 파이프 라인 모드에서 실행 중일 때 기본적으로이 기능이있는 IIS 7.0+로 업그레이드하는 것이 좋습니다.

+1

그 링크는 URL의 일부인 .axd와 같은 확장자가 있다고 가정합니다. 번들은 진정으로 확장 성이 없지만 그가 말하는 것은 작동하지 않습니다. 와일드 카드 매핑 설정이 이미 있는데 도움이되지 않습니다. –

+0

@ShaneCourtrille, 불행히도 현재 IIS 6 상자에 대한 액세스 권한이 없으므로 테스트 할 수 있지만 확장 성없는 URL을 올바르게 구성하면이를 달성 할 수 있다고 생각했습니다. 어쩌면 http://serverfault.com에 질문을 시도해 볼 수도 있습니다. 질문보다는 프로그래밍보다는 서버 구성과 관련이 있습니다. –

+0

아니요, 그냥 확장 기능이 없기 때문에 불행히도 저에게 도움이되지 않습니다. 나는 이것에 대한 해결책도 찾지 못했다. –

0

광산 문제가 App_Start의 BundleConfig.cs 파일에 있습니다. 내 BindleConfig.cs 파일

bundles.Add(new ScriptBundle("~/Scripts/ui-js").Include(
            "~/Scripts/ui-js/jquery.min.1.11.1.js" 
            , "~/Scripts/ui-js/bootstrap.min.js" 
            , "~/Scripts/ui-js/bootstrap-slider.js" 
            , "~/Scripts/ui-js/bootstrap-lightbox.js" 
            , "~/Scripts/ui-js/common-script.js" 
            , "~/Scripts/ui-js/html5.js" 
            , "~/Scripts/ui-js/jquery.colorbox.js" 
            , "~/Scripts/ui-js/respond.src.js" 
            , "~/Scripts/ui-js/angular.min.js" 
            , "~/Scripts/ui-js/bootstrap.js" 
            ,"~/Scripts/ui-js/jRate.min.js" 
            , "~/Scripts/ui-js/jcrop.min.js" 
            )); 

그리고 내 레이아웃 페이지를 다음과 같이 이전에보고 된이 새로운 ScriptBundle() 가상에 대해 같은 폴더 구조를 사용하지 못할 것처럼 내가 해결책을 찾았 인터넷 검색 후

@Scripts.Render("~/Scripts/ui-js") 

했다 통로.

그래서 나는이

bundles.Add(new ScriptBundle("~/Scripts/ppScript").Include(
            "~/Scripts/ui-js/jquery.min.1.11.1.js" 
            , "~/Scripts/ui-js/bootstrap.min.js" 
            , "~/Scripts/ui-js/bootstrap-slider.js" 
            , "~/Scripts/ui-js/bootstrap-lightbox.js" 
            , "~/Scripts/ui-js/common-script.js" 
            , "~/Scripts/ui-js/html5.js" 
            , "~/Scripts/ui-js/jquery.colorbox.js" 
            , "~/Scripts/ui-js/respond.src.js" 
            , "~/Scripts/ui-js/angular.min.js" 
            , "~/Scripts/ui-js/bootstrap.js" 
            ,"~/Scripts/ui-js/jRate.min.js" 
            , "~/Scripts/ui-js/jcrop.min.js" 
            )); 

에 위의 변경 그리고 내 레이아웃 페이지에 내가

@Scripts.Render("~/Scripts/uiScript") 

참고로 불리는 : 당신은 당신의 CSS와 함께이 같은 행동을 너무 번들 모더 나이저 필요 :)

관련 문제