如何使我的靜態文件根目錄相對於我的應用程序根文件夾(而不是硬編碼路徑)?CherryPy配置tools.staticdir.root問題
按照CP指令(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:( 「部分配置錯誤:'全局',選項:'tree.cpapp',值:'cherrypy.Application(cpapp.Root())'。配置值必須是有效的Python。」,'TypeError',(「unrepr could不解析名稱'cpapp'「,))
我知道我可以在調用quickstart之前從main.py文件中進行配置(例如,使用os.path.abspath(os.path.dirname(文件))),但如果可能,我更喜歡使用單獨配置文件的想法。
任何幫助,將不勝感激(如果它是相關的,我使用的CP 3.2與Python 3.1)
TIA 艾倫
嗨fumanchu - 感謝您的答覆。據我可以看到沒有cpapp.py模塊導入,所以我不能嘗試該選項。我想反思一下,最好的解決方案可能是爲每個應用程序分別配置一個配置文件(我認爲這是設計用途),hard-code tools.staticdir.root,然後設置所有其他子文件夾(css, js等)相對於根。 – 2010-06-02 19:39:01
cpapp.py是你聲明Root類的地方。例如,如果您的Root類在myapp/main.py中找到,那麼您的配置需要說「tree.cpapp = cherrypy.Application(myapp.main.Root())」 – fumanchu 2010-06-02 20:32:55