разрешение пути в шаблонах jinja2 - PullRequest
2 голосов
/ 01 апреля 2012

Я использую cherrypy с шаблонами jinja2 из каталога 'views', например:

env = Environment(loader = FileSystemLoader('views'))

Когда я отображаю страницу индекса:

index = env.get_template('index.html')

он отображается нормально, но ссылки css, javascripts и изображения (внутри index.html) не разрешаются:

<head>
    <link rel="stylesheet" type="text/css" media="screen" href="css/web.css">
    <link rel="shortcut icon" type="image/png" href="img/favicon.png">
    <script src="js/jquery-1.7.1.min.js" type="text/javascript" charset="utf-8"></script>
</head>

файловая система организована следующим образом: views / css, views / js, views / img

Что такое надежный способ получения разрешения рабочего файла?

1 Ответ

1 голос
/ 01 апреля 2012

Статические пути в шаблонах Jinja не имеют ничего общего с Jinja.Все дело в конфигурации веб-сервера.Если вы используете колбу, используйте диспетчер SharedDataMiddleware для статических файлов, например

from werkzeug import SharedDataMiddleware
app.wsgi_app = SharedDataMiddleware(app.wsgi_app,
                                    { '/static': '/path/to/static/files' } )

Структура статического каталога:

.../static/
           img/
           css/
           js/
           etc/

Не забудьте добавить косую черту вначало путей:

<link rel="shortcut icon" type="image/png" href="/static/img/favicon.png">

Настоятельно не рекомендуется использовать SharedDataMiddleware на производственных серверах.Nginx это правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...