jQuery를 사용하여 상대 경로 결정
최상위 도메인의 하위 폴더에 여러 개의 워드프레스 사이트가 설치되어 있습니다.
각각의 AJAX 파일을 로드해야 하며 다음 코드를 사용했습니다.
// Initiate asynchronous load of xml data:
jQuery.ajax({
type: "GET",
url: "/wp-content/themes/mytheme/data.xml",
dataType: "xml",
success: parseDataXML
});
그러나 도메인의 루트 경로에서 파일을 검색하게 됩니다.
http://www.mydomain.com/wp-content/themes/mytheme/data.xml
사이트의 루트 경로 대신:
http://www.mydomain.com/site-a/wp-content/themes/mytheme/data.xml
url 경로에서 선행 "/"를 제거합니다.선행 슬래시는 "현재 폴더에서"가 아니라 "사이트 루트에서"를 의미합니다.
편집: 좋아요. 그런 다음 각 "사이트"의 루트 인덱스에서 해당 폴더 이름을 포함하도록 BASE HREF를 정의해야 합니다.그런 다음 선행 슬래시는 사이트 루트 대신 해당 값을 고려해야 합니다.
다음과 같은 위치를 확인하는 것이 가장 좋습니다.
var pathname = window.location.pathname;
그런 다음 indexOf()를 수행하여 어떤 WP 설치를 가리킬지 지정합니다.
당신이 당신의 URL을 시작했기 때문입니다./
그것은 그것을 절대적인 URL로 만듭니다.상대 URL로 변경하려면 다음으로 변경합니다.url: "wp-content/themes/mytheme/data.xml",
.
테스트는 안 해봤는데, 이런 것도 되나요?
var baseUrl = "http://www.mydomain.com",
pathToDataXml = "/wp-content/themes/mytheme/data.xml",
siteDir = window.location.href.toString()
.replace(baseUrl, "")
.replace(pathToDataXml, "");
// Initiate asynchronous load of xml data:
jQuery.ajax({
type: "GET",
url: baseUrl + siteDir + pathToDataXml,
dataType: "xml",
success: parseDataXML
});
가장 간단한 솔루션:
url: window.location.pathname + "/wp-content/themes/mytheme/data.xml",
만약 당신의 자바스크립트 코드가 php 파일 안에 쓰여 있다면, 다음을 사용하세요.
url: "<?php echo site_url(); ?>/wp-content/themes/mytheme/data.xml",
php 파일에서 클릭하여 AJAX 요청을 호출하는 경우 클릭 시 이를 사용합니다.
onclick="cat_ajax_get('some_value', '<?php echo site_url(); ?>');"
function cat_ajax_get(catID, ajaxurl) {
jQuery.ajax({
type: "GET",
url: ajaxurl + "/wp-content/themes/mytheme/data.xml",
dataType: "xml",
success: parseDataXML
});
}
루트 디렉터리를 정의하는 글로벌 변수를 정의할 수 있습니다(이 경우에는 적합하다고 생각합니다).
rootFolder = location.pathname.substr(0, 7) === '/site-a' ? '/site-a/' : '/site-b/';
그런 다음 이 변수를 AJAX 요청에 사용할 수 있습니다.
jQuery.ajax({
type: "GET",
url: rootFolder + "wp-content/themes/mytheme/data.xml",
dataType: "xml",
success: parseDataXML
});
window.location.pathname은 디렉토리 구조와 관련이 있습니다.많은 경우가 일이라는 것은 인정하지만 항상 그런 것은 아닙니다!
누군가가 MVC를 염두에 두고 여기까지 오게 된 것 같아서 적어 두었습니다.
제 생각에 그가 묻고 있는 것은 mvcUrl과 같은 것이 있는지 여부입니다.~/를 사용하여 하위 도메인으로 이동할 수 있는 콘텐츠입니다.저는 질문에 그런 것이 있다고 생각하지 않거나, 적어도 우연히 만난 적은 없습니다.하위 도메인을 URL로 하드 코딩해야 할 수도 있습니다.
폴더 이름 앞에 '...'를 사용할 수 있습니다.
url: "../wp-content/themes/mytheme/data.xml"
wp에서 작동했으면 좋겠습니다.일반적으로 다른 경우에도 효과가 있습니다.
언급URL : https://stackoverflow.com/questions/6283000/determining-relative-path-with-jquery
'IT' 카테고리의 다른 글
혼합 영숫자 배열 정렬 (0) | 2023.08.26 |
---|---|
PowerShell 필수 매개 변수는 다른 매개 변수에 따라 다릅니다. (0) | 2023.08.26 |
숫자를 6 PHP로 나눌 수 있는지 확인하기 (0) | 2023.08.26 |
Oracle current_timestamp를 초 단위로 변환 (0) | 2023.08.26 |
Spring Boot에서 Kafka 소비자 활성화/비활성화 제어 (0) | 2023.08.26 |