좋아, 내 문제에 대한 해결책을 찾았습니다. 이 문제를 해결하기 위해 원래 의도했던 방식이 아닌 해결 방법입니다. 내 첫 번째 시도는 "ace.define"함수에 ajax 호출을 포함시키는 것이지만 올바르게 처리하지 못하고 부품이 누락되어 오류가 발생합니다. 그렇다면 동적으로 키워드를 가져 오려고했지만 파이썬 환경에서 그 일을 할 수 없었습니다. 마지막으로 나는 아약스 호출의 성공에 모든 것을 담은 것으로 생각했으며 이제는 올바르게 작동합니다. 나는 ace 함수에 임베드 될 때 ajax 이벤트와 정의의 다른 부분 사이의 타이밍이 일치하지 않았다고 생각합니다.
간단히 대답하면 아약스 성공 콜백에서 전체 정의를 래핑하는 것입니다.
$.ajax({
url: "/readUserCreatedKeywords",
type: "POST",
success: function(response){
var keywordsString = "";
var tmpArr = response.split(",");
var tmpArrLen = tmpArr.length;
var s = 0;
var halfNum = 0;
while (s < tmpArrLen) { // Clean array and save keywords and args into respective arrays
halfNum = parseInt(s/2);
tmpArr[s] = tmpArr[s].replace("u'", "").replace("[", "").replace("'", "").replace("(u", "").replace(")", "").replace("]", "").replace("(", "").replace(" ", "");
if (s % 2 == 0){ //Store even values in keywords
keywordsString += tmpArr[s] + "|";
//console.log("tmpArr[" + s + "]" + tmpArr[s]);
}
s++;
}
ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
...............................................lots of code..........................................
exports.Mode = Mode;
});
}
});
Apache 서버에서는 작동하지만 Python 서버에서는 작동하지 않는 경우 서버 설정 방법으로 인해 발생해야합니다. 더 많은 것을 말하라. 그렇지 않으면이 질문은 대답 할 수 없다. –
python 서버에는 templates라는 하위 폴더에서 index.html 페이지를 호출하는 기본 파이썬 페이지가 있습니다. 결과적으로 "템플리트"에있는 모든 항목은 정상적인 상황보다 하나의 디렉토리에 있으므로 모든 상대 경로가 필요한 위치와 일치하지 않습니다. 나는 Web.py의 팬이 아니지만이 프로젝트를 위해 사용해야한다. 발견하고 아파치에서 작동하는 샘플 코드는 html 페이지에 임베드 된 호출을 가지므로 상대 경로 지정 문제가 발생합니다. 코드는 http://jsbin.com/ojijeb/445/edit?html,output –
에 있습니다. ace.config.set ("basePath", "some/path")를 사용하여 파일을 찾는 위치를 변경할 수 있습니다 –