我在我的库主入口点 (main.php) 中包含以下代码:
/**
* Build current url, depending on protocal (http/https),
* port, server name and path suffix
*/
$site_root = 'http';
if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on")
$site_root .= "s";
$site_root .= "://" . $_SERVER["SERVER_NAME"];
if ($_SERVER["SERVER_PORT"] != "80")
$site_root .= ":" . $_SERVER["SERVER_PORT"];
$site_root .= $g_config["paths"]["site_suffix"];
$g_config["paths"]["site_root"] = $site_root;
$g_config 是一个包含配置选项的全局数组。所以 site_suffix 可能看起来像:“/sites_working/thesite/public_html”在您的开发框上,而“/”在具有虚拟主机(域名)的服务器上。
这种方法也很好,因为如果有人输入你的开发框的 IP 地址,它将使用相同的 IP 地址来构建 javascript 文件夹的路径,而不是像“localhost”这样的东西,如果你使用“localhost”它将使用“localhost”来构建 URL。
而且因为它还检测 SSL,所以如果您向服务器添加 SSL 支持,您将不必担心天气将通过 HTTP 或 HTTPS 发送您的资源。
然后,在您的模板中,使用
<link id="site_root" href="<?php echo $g_config["paths"]["site_root"] ?>"/>
或者
<script type = "text/javascript">
var SiteRoot = "<?php echo $g_config["paths"]["site_root"]; ?>";
</script>
我想后者会更快。