하드 코딩 된 경로 대신 응용 프로그램 루트 폴더에 상대적인 정적 파일 루트 디렉터리를 만들려면 어떻게해야합니까? CP 지침에 따라CherryPy 구성 tools.staticdir.root 문제
(http://www.cherrypy.org/wiki/StaticContent) 나는 내 구성 파일에 다음과 같은 시도 :
tree.cpapp = cherrypy.Application(cpapp.Root())
tools.staticdir.root = cpapp.current_dir
을하지만 cherrpy.quickstart(rootclass, script_name='/', config=config_file)
을 실행할 때 다음과 같은 오류를
builtins.ValueError를 얻을 수를 : ("구성 오류 : 'global', 옵션 : 'tree.cpapp', 값 : 'cherrypy.Application (cpapp.Root())'. 구성 값은 유효한 파이썬이어야합니다.", 'TypeError', ("unrepr could 'cpapp'이름을 확인하지 못했습니다. ")))
quickstart가 호출되기 직전에 main.py 파일에서 구성 할 수 있음을 알고 있습니다 (예 : os.path.abspath (os.path.dirname (파일)))를 사용하여), 가능하면 별도의 구성 파일을 사용하는 것을 선호합니다.
어떤 도움을 주시면 감사하겠습니다, CherryPy 먼저 찾습니다
TIA 앨런
안녕하세요 fumanchu - 답장을 보내 주셔서 감사합니다. 내가 볼 수있는 한, 가져올 cpapp.py 모듈이 없으므로이 옵션을 사용할 수 없습니다. 내 생각에 리플렉션에서 가장 좋은 솔루션은 각 어플리케이션 (의도 한 설계 용도로 추측), 하드 코드 tools.staticdir.root, 다른 모든 하위 폴더 (CSS, js 등)을 루트에 비례합니다. –
cpapp.py는 루트 클래스를 선언 한 곳이면 어디서든 사용할 수 있습니다. 예를 들어, Root 클래스가 myapp/main.py에 있으면, "tree.cpapp = cherrypy.Application (myapp.main.Root())"라고 설정해야합니다. – fumanchu