2009-10-12 4 views
2

는 :ASP.NET MVC 콘텐츠 폴더 - CSS/이미지 소스에서 변경되었지만 JS에서 변경되지 않은 URL? 내 Site.Master 파일이있는 경우

<link href="../../Content/Site.css" rel="stylesheet" type="text/css" /> 

을하고 (실제 서버에 배포 할 때) 내 사이트의 페이지 소스보기로 이동,이 같은 렌더링 :

<link href="Content/Site.css" rel="stylesheet" type="text/css" /> 

그러나 Scripts/폴더에 JS 파일이 있으면 동일한 동작을 모방하지 않습니다. 마술은 어디에 있습니까? 이 문제를 일으키는 일부 설정이 있습니까?

감사합니다,

~ 저스틴

답변

6

난 항상 확인하기 위해 URL 도우미를 사용합니다.

<link href="<%= Url.Content("~/content/site.css") %>" 
     rel="stylesheet" 
     type="text/css" /> 

<script type="text/javascript" 
     src="<%= Url.Content("~/scripts/jquery-1.3.2.min.js") %>"> 
</script> 

사실 나는 이것을 동일한 작업을 수행하는 HtmlHelper 확장으로 대체했습니다.

<%= Html.Stylesheet(Url.Content("~/content/site.css)) %> 
<%= Html.Javascript(Url.Content("~/scripts/jquery-1.3.2.min.js")) %> 
+0

아. 나는 Url에 대해 몰랐다. 내용. 유용합니다. 하지만 여전히 페이지 소스에서 다시 쓰여지는 이유와 그렇지 않은 이유를 이해하고 싶습니다. – RationalGeek

2

헤드에는 runat = "server"옵션 세트가 있습니다. 즉, 링크 참조를 위해이 "마법"서버 측을 수행합니다. AFAIK 이것은 스크립트 참조에서 발생하지 않습니다.

+0

이것이 사실이라면 두 가지가 모두 HEAD에 있기 때문에 다시 작성되지는 않습니까? – RationalGeek

+0

당신은 생각했습니다. 나는 정비공에서 충분히 주변을 파고 가지 못했지만이 사실을 알고 있습니다. runat = "server"를 머리에서 꺼내서 어떤 일이 일어나는지 봅니다. 내 생각 엔 Microsoft가 스크립트 태그가 아닌 링크 태그를 특별히 찾습니다. –

+0

도 참조하십시오. http://stackoverflow.com/questions/446533/what-is-the-status-of-runatserver-tags-in-asp-net-mvc 자세한 정보보기 –

관련 문제