ASP.Net 마스터 페이지 및 파일 경로 문제
마스터 페이지에서 jQuery에 대한 스크립트 참조를 추가하여 모든 페이지에서 사용할 수 있도록 하려고 합니다.현재 상태는 다음과 같습니다.
<script type="text/javascript" src="jquery.js"></script>
문제는 경로가 항상 실행 중인 asx 페이지에 상대적이므로 "jquery.js" 파일이 동일한 폴더에 있는 경우에만 작동한다는 것입니다.작동하려면 라인을 다음으로 변경해야 합니다.
<script type="text/javascript" src="../../jquery.js"></script>
루트 폴더에서 두 단계 깊이의 페이지에만 사용할 수 있기 때문에 이상적이지 않습니다.다음을 시도하면 IIS에서 예기치 않은 문자에 대한 오류를 발생시킵니다.
<script runat="server" type="text/javascript" src="~/jquery.js"></script>
아이디어 있어요?
편집: 스크립트가 헤드 태그에 있어야 한다는 것을 언급하는 것을 잊었습니다.
현재 최상위 응답을 마스터 페이지에 추가하면 "ASP.NET Ajax 클라이언트 측 프레임워크를 로드하지 못했습니다." 오류가 발생합니다.그것은 가 아니라 자바스크립트에서 던져졌습니다.넷 컴파일러.ScriptManager를 Head 섹션으로 이동하면 양식 태그 안에 ScriptManager가 있어야 한다는 컴파일 오류가 발생합니다.
세 번째 답변은 컴파일러에서 "경로 내 불법 문자" 예외를 슬로우합니다.
편집 2: 헤드 태그에 해당 줄을 추가하면 IIS에서 이 오류가 발생합니다.
컨트롤에 코드 블록(예: <%... %>)이 포함되어 있기 때문에 컨트롤 컬렉션을 수정할 수 없습니다.
해결됨: 아래 답변에서 편집된 응답을 가져와 ASP 안에 넣었습니다.ContentPlaceHolder 요소
다음을 사용할 수 있습니다.
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/jquery.js" />
</Scripts>
</asp:ScriptManager>
편집: 이 기능이 꼭 필요한 경우<head>
섹션에서는 다음과 같은 작업을 수행할 수 있습니다.
<head>
<script type="text/javascript"
src="<%= Page.ResolveClientUrl("~/jquery.js") %>"></script>
</head>
EDIT 2: 댓글에 따르면, 만약 당신이 그것을 관찰하고 있다면.
컨트롤에 코드 블록(예: <%... %>)이 포함되어 있기 때문에 컨트롤 컬렉션을 수정할 수 없습니다.
데이터 바인딩 구문을 사용하려면 위의 내용을 변경해야 할 수 있습니다.
<head>
<script type="text/javascript"
src="<%# Page.ResolveClientUrl("~/jquery.js") %>"></script>
</head>
ㅠㅠ<%#
에 <%=
섹션
<script type="text/javascript"
src="<%# ResolveUrl("~/YourScriptFolder/YourJQueryOrJavascript.js") %>">
</script>
코드비하인드 오브 마스터 페이지의 오브 에 .Page_Load
Page.Header.DataBind();
, 중 할 수 . 단지 JQuery 자바스크립트, CSS에서 됩니다. 단지 경로를 변경하기만 하면 됩니다.ResolveUrl
CSS, JavaScript, jQuery를 참조하십시오.
우리한테 안 갈거면 다음과(와)ScriptManager 또는 절대 경로는 다음과 같이 수행할 수 있습니다.
<script runat="server" type="text/javascript"
src='<%= Page.ResolveUrl("~/jquery.js") %>'></script>
저는 당신들이 당신들의 문제에 대한 해결책을 찾았는지 아닌지 모르겠습니다.저도 같은 문제에 직면하여 제가 사용하는 플러그인에서 "jQuery is undefined" 오류가 발생하는 이유를 알아내려고 미친 듯이 노력했습니다.저는 인터넷에서 얻는 모든 해결책을 시도했지만 전혀 실패했습니다.
그런데 갑자기 스크립트 파일이 제대로 되어야 할 것 같은 생각이 들었습니다.그래서 저는 jquery referre를 첫 번째 위치로 옮겼고 모든 것이 매력적으로 작동하기 시작했습니다.
여러분, jquery와 함께 플러그인을 사용하는 경우에는 해당 필드에 대한 다음과 같은 설정 순서를 사용해야 합니다.
- jquery 라이브러리에 대한 참조
- 다른 후속 플러그인 라이브러리에 대한 참조 등...
예:
- "script src="js/jquery-1.3.2.min.js" type="text/scripts"...
- "script src="js/jqDnR.min.js" type="text/scripts"...
- "script src="js/jquery.jqpopup.min.js" 유형="텍스트/스크립트"...
- "script src="js/jquery.bgiframe.min.js" type="text/scripts"...
항상 jquery 참조를 먼저 입력하고 그 다음에 후속 라이브러리를 입력해야 합니다.
이렇게 하면 특히 마스터 페이지와 함께 사용할 때 문제가 해결됩니다.MasterPages를 사용하지 않을 때는 어떤 순서를 사용해도 작동하지만 사용할 때는 어떻게든 적절한 순서를 요구한다는 것이 매우 이상합니다.
행운과 행복한 코딩,
빈센트 더수자
루트 "/" 실행 방법을 확인합니다.이렇게 하면 해결되지 않은 문제를 모두 해결할 수 있습니다..js
기본적으로 하여 애플리케이션을 실행할 수 . VS Dev 서버는 VS Dev 서버입니다.localhost:port/
의 정반에 .localhost:port/application name/
이름 확인이 IIS에서 수행되는 것과 동일한 방식으로 작동하도록 합니다.
페이지에 대한 파일의 절대 경로는 다음과 같습니다.
<script type="text/javascript" src="<%= Page.ResolveClientUrl("~/jquery.js") %>"></script>
<script type="text/javascript" src="/full/path/to/jquery.js"></script>
이 스크립트 태그가 브라우저로 직접 이동하면 사이트의 루트를 브라우저로 대체할 수 없습니다.적어도 서버에는 없습니다.따라서 다음을 수행할 수 있습니다.
- 도메인 이름의 루트에 사이트를 배포하고 절대 경로(가장 간단한 솔루션)를 사용합니다.
- 서버 제어와 함께 이 링크를 삽입합니다.
- 결과 HTML을 클라이언트로 보내기 전에 HttpResponse를 사용하여 사전 처리합니다.필터).
<base> HTML 태그도 사용할 수 있습니다.
<base href="http://www.domain.com"></base>
그런 다음 헤더 섹션의 모든 링크가 기본 주소에 상대적입니다.
<script type="text/javascript" src="scripts/jquery.js"></script>
로컬 개발 웹 서버, 데모 서버 등과 같이 여러 게시 대상이 있을 때 유용한 경우가 많습니다.기본 URL만 바꾸면 됩니다.
<body>
<script language="javascript" src='<%= this.ResolveClientUrl("~/full/path/to/jquery.js") %>' type="text/javascript"></script>
</body>
언급URL : https://stackoverflow.com/questions/697660/asp-net-master-page-and-file-path-issues
'programing' 카테고리의 다른 글
여기에 "오픈 깃배시"를 추가하는 방법.윈도우 탐색기의 상황에 맞는 메뉴? (0) | 2023.07.03 |
---|---|
ctrl-c를 사용하지 않고 플라스크 적용을 중지하는 방법 (0) | 2023.07.03 |
Oracle 씬 드라이버 대 OCI 드라이버.장점과 단점? (0) | 2023.07.03 |
SQL Server 데이터베이스에서 모든 저장 프로시저를 한 번에 삭제하는 방법은 무엇입니까? (0) | 2023.07.03 |
Mongo $lookup이 왼쪽 외부 조인이라면 일치하지 않는 문서를 제외하는 이유는 무엇입니까? (0) | 2023.07.03 |