Как я могу создать свои корневые каталоги статического файла относительно корневой папки приложения (вместо жестко закодированного пути)?Проблема с конфигурацией 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: («Ошибка конфигурации в разделе:« global », опция:« tree.cpapp », значение:« cherrypy.Application (cpapp.Root()) ». Значения конфигурации должны быть действительными Python.», «TypeError», («unrepr could не разрешать имя «cpapp»,))
Я знаю, что могу выполнить настройку из файла main.py перед вызовом quickstart (например. используя os.path.abspath (os.path.dirname (файл))), но я предпочитаю использовать идею отдельного файла конфигурации, если это возможно.
Любая помощь будет оценена (в случае, если это уместно, я использую CP 3.2 с Python 3.1)
ТИА Alan
Hi fumanchu - спасибо за ответ. Насколько я вижу, нет модуля cpapp.py для импорта, поэтому я не могу попробовать этот параметр. Я считаю, что лучшим решением может быть отдельный файл конфигурации для каждого приложения (который, как я предполагал, был предназначен для использования), hard-code tools.staticdir.root, а затем установить все другие подпапки (css, js и т. д.) относительно корня. –
cpapp.py - это место, где вы указываете свой класс Root. если ваш класс Root найден в myapp/main.py, например, тогда ваш конфиг должен сказать: «tree.cpapp = cherrypy.Application (myapp.main.Root())» – fumanchu