"TypeError: make_staticdir() получил неожиданный аргумент ключевого слова 'document_root'", запускающий Diazo через прокси

Я точно выполнил шаги, описанные в руководстве по быстрому запуску Diazo, размещенном на docs.plone.org (docs.diazo.org устарел, поскольку я пишу это в апреле 2015 года), и получил странную ошибку при попытке выполнить последнюю команду bin/gearbox serve --reload -c proxy.ini, Эта ошибка помешала мне продолжить и не указала, откуда она взялась.

Точная ошибка, которую я получил, была:

File "eggs/PasteDeploy-1.5.2-py2.7.egg/paste/deploy/util.py", line 55, in fix_call
val = callable(*args, **kw)
TypeError: make_staticdir() got an unexpected keyword argument 'document_root'

Кто-нибудь знает, как я могу решить эту проблему, чтобы приступить к разработке моей темы Plone?

1 ответ

Решение

Оказывается, эта ошибка вызвана ошибкой в ​​файле proxy.ini, из-за которой в библиотеке webobentrypoints генерируется подавленная ошибка. Чтобы исправить это, измените третий раздел файла proxy.ini под названием "app: static", чтобы использовать "путь" вместо неправильного "document_root", чтобы он теперь содержал следующее:

[app:static]
use = egg:webobentrypoints#staticdir
path = %(here)s/theme

Однако, как только вы исправите эту проблему, вам все равно нужно будет решить еще одну проблему: страница, на которую руководство по быстрому запуску пытается прокси-сервера, изменилась, так что она будет перенаправлять ваш браузер и не отображать вашу тему. Мне повезло, переключив последний раздел proxy.ini на последнюю версию того же документа, который теперь находится на plone.org:

[app:content]
use = egg:webobentrypoints#proxy
address = http://docs.plone.org/external/diazo/docs/index.html
suppress_http_headers = accept-encoding connection

Чтобы правильно оформить тему этого сайта, теперь необходимо дополнительно изменить файл rules.xml, чтобы отобразить класс ".content-column" вместо ".content". Это должно выглядеть так:

<rules
    xmlns="http://namespaces.plone.org/diazo"
    xmlns:css="http://namespaces.plone.org/diazo/css"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <theme href="theme/theme.html" />

    <drop css:content="#indices-and-tables" />
    <replace css:theme-children="#content" css:content-children=".content-column" />
</rules>

Надеюсь, это решит вашу проблему.

Примечание: я уже представил эти изменения для включения в документацию Diazo, но, особенно учитывая, сколько версий документа можно легко найти при поиске помощи, представляется целесообразным задокументировать эту возможную ошибку в центральном месте.

Другие вопросы по тегам