我包括我的庫下面的代碼的主入口點(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>
我想後者會更快。
當然啊。似乎我錯過了最簡單的答案:)。 – Staale 2008-09-20 18:14:14