好的,所以我有一些Javascript與URL重寫一起運行;所以如果我使用相對URL,它會從錯誤的地方加載內容。在Javascript/PHP中處理絕對URL的正確方法?
例如我在myfunctions.js這個功能:
function loadXMLDoc(url,cfunc) {...
如果我從test.com/a/b/c
傳遞一個相對URL就會相對含量加載到test.com/a/b/c
而非test.com
。
我明顯可以使用絕對URL來解決這個問題,但是我需要這個在測試服務器和活動服務器上工作。
PHP中的當前我使用一個函數來獲取基礎URL並將其替換爲絕對URL。
所以在PHP中,我有:
//On the test server I run:
define('BASE_URL', 'http://localhost/location/to/www/root');
//And on the live server I run:
define('BASE_URL', 'http://www.test.com/');
然後我用這在我的PHP絕對加載圖像,CSS等;這使我可以在測試服務器和活動服務器上使用相同的代碼。
我的問題是;這裏有什麼正確的解決方案?我應該使用類似於我的PHP形式的絕對URL的Javascript函數嗎?或者是否有可能將這個PHP定義傳遞給.js文件?
甚至可能有一個重寫標誌,告訴瀏覽器忽略url中的相對位置,並從根www位置加載;但我找不到任何東西。
任何想法?
抓住當前的URL,修剪它,加入A/B/C – starvator 2014-10-01 13:21:12
@starvator:它修剪到究竟是什麼?如果該網站在虛擬目錄中,根目錄可能是'http:// www.domain.com/approot /':) – 2014-10-01 13:22:55
也許你需要使用一個變量$ isLive = false;然後用if($ isLive){define('base_url','url-live')來檢查它。 } else {define('base_url','url-test'); } – Carca 2014-10-01 14:14:38