2010-01-24 5 views
2

ASP.NET MVC 컨트롤러 + 액션을 통해 사이트의 CSS 컨텐츠를 제공하고 있습니다. CSS "파일"이 올바르게 전달되는 것으로 보이지만 IE 만 적용됩니다. 다른 브라우저 (Firefox, Opera, Chrome)는 CSS 파일을 무시하고 스타일을 지정하지 않고 페이지를 렌더링합니다. IE8은 완벽하게 작동합니다. 버전이 어떤 문자열이 될 수 있음을ASP.NET MVC 컨트롤러 + 액션을 통해 가져올 때 CSS 파일은 IE에만로드됩니다.

public void CSS(string version) 
{ 
    string cssFile = Server.MapPath("/site.css"); 
    string cssContents = System.IO.File.ReadAllText(cssFile); 
    Response.Write(cssContents); 
} 

참고 :

이 내가 컨트롤러와 액션을 통해 CSS를 반환하기 위해 사용하고 필수 코드입니다. "myversion.css", "1.css", "1234", "arbitrary"등의 문자열로 시도했습니다.

이 모든 기능은 IE8에서는 작동하지만 다른 브라우저에서는 작동하지 않습니다. 어떤 아이디어?

답변

4

Content-type: text/css 헤더를 보내야합니다.

Firefox는 그렇지 않으면 스타일 시트를 무시하고 오류 콘솔에서 경고를 출력합니다. 다른 Gecko/Webkit 기반 브라우저에서도 마찬가지 일 것입니다.

2

이것은 질문을 입력하고 문구 작성 방법을 숙고 한 다음 답변을 게시하면 나에게 제기 된 사례 중 하나였습니다. 내가 여기로 돌아 왔을 때 페카는 그 질문에 정확하게 대답했다. 문제를 해결하는 코드가 여기에 관심이있는 경우 :

string fileLocation = Request.PhysicalApplicationPath + @"site.css"; 
ContentResult fcr = new ContentResult(); 
fcr.Content = System.IO.File.ReadAllText(fileLocation); 
fcr.ContentType = "text/css"; 
return fcr;