Smarty Relative включают путь - PullRequest
       9

Smarty Relative включают путь

0 голосов
/ 23 сентября 2010

Структура файла выглядит следующим образом:

index.php

settings/
|-manage_account.php

templates/viriditio-v2/
|-index.tpl

templates/virditio-v2/css
|-style.css

localhost/~braden/virditio/index.php показывает шаблон, как и ожидалось, показывая index.tpl с путями таблицы стилей, правильно показывая:

<link rel="stylesheet" href="templates/virditio-v2/css/style.css" type="text/css"/>

Однако localhost/~braden/virditio/settings/manage_account.php показывает тот же путь, который является относительным путем (должен быть ../ для завершения).

Какой самый простой способ сделать это относительно шаблона?Или абсолютный корень?Есть ли функция Smarty, которая включает в себя CSS-файлы и делает их не относительными?

В настоящее время у меня настроено так:

config: template_url = "templates/virditio-v2/"

и .tpl:<link rel="stylesheet" href="{#template_url#}css/reset.css" type="text/css"/>

РЕДАКТИРОВАТЬ

Это не красиво, но я смог сделать это с

{assign var='config_url' value=#template_url#}
{assign var='template_url' value=http://`$smarty.server.SERVER_NAME`$config_url}

Есть ли какие-нибудь лучшие решения?

Ответы [ 2 ]

0 голосов
/ 20 октября 2010

Почему бы не получить доступ к CSS, как

/templates/virditio-v2/css/style.css

с абсолютным путем?

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

0 голосов
/ 24 сентября 2010

Если я правильно понял, проблема заключается в том, чтобы CSS-файл был связан с веб-страницей, независимо от того, откуда в дереве папок эта страница.Это может быть записано как:

<link rel="stylesheet" href="/~braden/virditio/templates/virditio-v2/css/style.css" type="text/css"/>

Это сделает фиксированный путь, начиная с корня сервера.

...