文件结构如下:
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
显示相同的路径,即相对路径(应该是../才能完成)。
使模板相对于模板的简单方法是什么?或绝对的根?是否有包含css文件的Smarty函数并使它们不相对?
目前我的设置如下:
配置:
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}
那里有更好的解决方案吗?
答案 0 :(得分:0)
如果我理解正确,问题是将CSS文件链接到网页,无论页面来自文件夹树中的哪个位置。这可能写成:
<link rel="stylesheet" href="/~braden/virditio/templates/virditio-v2/css/style.css" type="text/css"/>
这将使其成为从服务器根目录开始的固定路径。
答案 1 :(得分:0)
为什么不像
那样访问CSS/templates/virditio-v2/css/style.css
有绝对路径吗?
如果它关于子目录中的不同托管环境,请考虑使用config选项来设置基本目录,并将其作为可修复的附加到智能模板中的路径。