Я использую smarty для своего последнего личного проекта и столкнулся с проблемой.
$smarty = new Smarty;
$smarty->template_dir = 'templates/dashboard/';
Вышеприведенное заставляет загружать файлы .tpl из этого каталога, это прекрасно работает для меня, но внутри .tpl я хочу загрузить изображение и мне нужно сделать:
<img src="templates/dashboard/images/avatar/full/{$user->username}.jpg" class="profile-avatar img-thumbnail">
То, что я хотел бы сделать, но не сработает, это:
<img src="https://web-answers.ru/wp-content/uploads/2019/03/avatar/full/{$user->username}.jpg" class="profile-avatar img-thumbnail">
Я думал, когда я устанавливаю template_dir, это тоже изменится, но это не так …
Я не мог найти документацию, где я могу изменить это для файла .tpl.
обратите внимание на ‘templates / dashboard’, это то, от чего я хочу избавиться внутри .tpl
Во-первых, вы не должны помещать изображения в ту же папку, где находятся ваши шаблоны. Изображения должны быть помещены в общую папку (обычно public
или же public_html
) и код сайта может быть размещен в другом каталоге, который недоступен из Интернета.
Поэтому перенесите ваши файлы в другую папку, потому что структура, которая у вас сейчас есть, определенно доставит вам неприятности.
Но если вы все еще хотите использовать такую структуру, вы можете просто присвоить Smarty новую переменную с указанием пути, который вы хотите использовать:
$smarty->assign('ip', $smarty->template_dir);
и теперь в вашем шаблоне вы можете использовать:
<img src="{$ip}images/avatar/full/{$user->username}.jpg" class="profile-avatar img-thumbnail">
Других решений пока нет …