Ошибка пути CherryPy / Mako с% include в Linux (работает в Windows) - PullRequest
1 голос
/ 20 октября 2011

У меня есть приложение со следующими файлами

/path_to_app
   app.py
   /html
      page.html
   /js
      page.js

В app.py я загружаю и отрисовываю шаблон mako.Файл шаблона - это page.html в каталоге html.Эта страница содержит строку:

     <%include file="../js/page.js" />

, которая предназначена для поиска и включения соответствующей страницы javascript (после выполнения мако-замен в этом файле).Это прекрасно работает на моей машине для разработки Windows, но когда я развертываюсь на сервере Linux Ubuntu для дальнейшего тестирования, он выдает ошибку: TemplateLookupException: шаблон uri "../js/fund_page.js" недопустим - он не может быть относительным снаружикорневого пути .

изменение включения, чтобы сделать его абсолютным для корня приложения:

     <%include file="/js/page.js" />

не помогает, что возвращает сообщение: TemplateLookupException:Не могу найти шаблон для uri u '/ js / fund_page.js' .

Какие изменения необходимы для того, чтобы иметь возможность использовать это включение mako в Linux, и можно ли выразить его так, чтобыбудет совместим с Windows и Linux?

Ответы [ 2 ]

0 голосов
/ 06 июня 2013

Вы должны добавить родительский каталог "js" к параметру directories вашего экземпляра TemplateLookup. Например:

mako_lookup = TemplateLookup(directories=[ root + "/project/templates",
                                           root + "/public"])
0 голосов
/ 22 октября 2011

Я решил эту проблему, используя простой способ перемещения включенного js-файла в тот же каталог, что и html-файл, который его вызывает.

...