簡體   English   中英

一種使用子域獲取相對路徑的方法?

[英]A way to get relative paths to work using subdomains?

通過子域訪問頁面時,所有包含和相對路徑都會中斷(即使服務器上的目錄結構應允許相對路徑找到它)。 使多個子域上的文件訪問中央資源(不使用絕對路徑)的最佳方法是什么?

一個JavaScript示例:

m_url : '../code/php/UserAPI.php',

    $.ajax({
        url: someClass.m_url,
        dataType: "json",
        data: paras,
        success: function(ret){someClass.onLoggedIn(ret, callback)}
    });

如果從subdomain1.example.comsubdomain2.example.com調用了此UserAPI,但是php駐留在example.com那么如何使相對路徑遵循linux目錄結構,而不是嘗試合並子域/域路徑呢?

PS。 無法對m_url進行硬編碼的原因是,該代碼必須在開發服務器和生產服務器上均可工作。

一如既往的感謝!

您可以使用$_SERVER['PATH_TRANSLATED']根據文件系統確定當前位置,然后相對於該位置進行定位。 但是,這需要對Apache設置進行一些調整

可能的替代解決方案是通過$ _SERVER感測您所在的主機(Dev,Prod等),並根據需要定義這些路徑。 然后,只需在定義路徑之前設置前綴即可。 當然,它需要一些額外的代碼行,但可以將大腦損傷減少一半。 該策略已在我工作過的許多大型生產環境中使用。

正如bpeterson76回答的那樣, $_SERVER['PATH_TRANSLATED']$_SERVER['SCRIPT_FILENAME']將為您提供腳本的原始服務器路徑,然后您可以根據子域結構對其進行調整。

這些服務器變量並非始終可用,因此您可以使用PHP函數getcwd() -這將返回腳本目錄而不包含文件名。 然后如上調整。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM