문제

이것은 제가 조롱할 만큼 고통스럽고 간단한 질문일 수 있지만 마스터 페이지에서 파일 경로를 사용하는 데 어려움을 겪고 있습니다.마스터페이지를 사용하기 위한 하위 디렉터리의 페이지가 있는 경우 파일 경로가 올바르지 않기 때문이라고 생각합니다.

이 문제를 해결하려면 루트에서 파일 경로를 가져와야 하는데 제대로 작동하지 않는 것 같습니다.

나는 시도했다:

            <script type="text/javascript" src="~/jQueryScripts/jquery.js"></script> 

그리고

            <script type="text/javascript" src="../jQueryScripts/jquery.js"></script> 

둘 중 하나에도 행운이 없습니다!

루트에서 파일 경로를 가져오도록 지시하는 방법에 대한 아이디어가 있습니까?감사해요 :)

도움이 되었습니까?

해결책

나는 단지 FilePath에 의해 가정하고 있습니다. 당신은 실제로 URL을 의미합니다 (또는 URI, 어느 것이 부분인지 잊어 버립니다).

~가 없으면 첫 번째 예제가 작동해야합니다. <script type="text/javascript" src="/jQueryScripts/jquery.js"></script> 브라우저가 요청하게됩니다 http://www.example.com/jqueryscripts/jquery.js (여기서 www.example.com이 당신의 도메인).

다른 팁

Ajax 지원 사이트를 실행하는 경우 내 답변을 참조하십시오. 2008 년 중첩 마스터 페이지에서 JavaScript에 대한 상대적 참조를 포함하는 선호하는 방법.

나는 당신이 가야한다고 생각합니다 runat=server 에서 <head> 태그의 태그 MasterPage 이 URL을 위해 작동하기 위해.

<head runat="server">

먼저 앞에 있는 물결표는 서버 컨트롤에 사용하기 위한 asp.net이며 기본 HTML에서는 작동하지 않습니다.

자세한 설명 없이 앞에 슬래시(/)를 사용하고 루트 사이트가 아닌 경우 웹 앱 이름을 포함하면 됩니다.

또는 스크립트를 동적으로 포함하기 위해 마스터 페이지에 코드를 삽입하고 경로 지정을 처리하도록 할 수 있습니다.좋다:

    public void AddJavascript(string javascriptUrl)
    {   
        HtmlGenericControl script = new HtmlGenericControl("script");
        script.Attributes.Add("type", "text/javascript");
        javascriptUrl += "?v" + Assembly.GetExecutingAssembly().GetName().Version;
        script.Attributes.Add("src", ResolveUrl(javascriptUrl));
        Page.Header.Controls.Add(script);
    }

위 코드는 어셈블리 버전도 추가합니다.나는 이것을 주로 개발에 사용하므로 빌드할 때마다 자바스크립트 파일이 업데이트됩니다.

당신은 사용할 수 있습니다 page.resolveUrl 이것을 돌아 다니는 방법

예를 들어:

<script type="text/javascript" src="<%=Page.ResolveUrl("~/jQueryScripts/jquery.js")%>"></script>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top