所以我從來沒有見過這個。我有一臺EC2服務器(第一次設置)使用Debian Linux和Apache 2.2。使用這樣的路徑/js/file.js
正在尋找http://js/file.js
。在我的本地機器和我的dreamhost共享服務器上,我沒有這個問題。事實上,我從來沒有在服務器上看到過這個問題。它應該做的是尋找http://domain.com/js/file.js
。有沒有人有一些想法,爲什麼會發生這種情況?我傾注了我的php.ini文件,並沒有提示我應該更改或添加以解決此問題。使用/directory/file.js不包括域
0
A
回答
0
好的,所以我想通了。問題是,在我的本地計算機和另一臺服務器上,我不在根域,所以我使用$_SERVER['SCRIPT_NAME'].DIRECTORY_SEPARATOR."js/"
來確定根url以製作js文件路徑的別名。這返回/app/js/
。當文件位於某個域的某個子文件夾中時domain.com/app/js/file.js
。
但是,一旦我在我的服務器上安裝此應用程序,它是根應用程序$_SERVER['SCRIPT_NAME'].DIRECTORY_SEPARATOR."js/"
返回//js/
。這是問題!這與/js/
不一樣。這是繞過網域的一部分,而是告訴瀏覽器看看http://js
,就像它是一個完全合格的網址。我假設//
是http://
的簡寫,但我從來沒有嘗試過。
爲了解決這個問題,我基於Yii框架中的某些東西入侵了這個函數,這正是我用於這個應用程序的東西。
function getBaseUrl() {
$scriptName=basename($_SERVER['SCRIPT_FILENAME']);
if(basename($_SERVER['SCRIPT_NAME'])===$scriptName)
$_scriptUrl=$_SERVER['SCRIPT_NAME'];
else if(basename($_SERVER['PHP_SELF'])===$scriptName)
$_scriptUrl=$_SERVER['PHP_SELF'];
else if(isset($_SERVER['ORIG_SCRIPT_NAME']) && basename($_SERVER['ORIG_SCRIPT_NAME'])===$scriptName)
$_scriptUrl=$_SERVER['ORIG_SCRIPT_NAME'];
else if(($pos=strpos($_SERVER['PHP_SELF'],'/'.$scriptName))!==false)
$_scriptUrl=substr($_SERVER['SCRIPT_NAME'],0,$pos).'/'.$scriptName;
else if(isset($_SERVER['DOCUMENT_ROOT']) && strpos($_SERVER['SCRIPT_FILENAME'],$_SERVER['DOCUMENT_ROOT'])===0)
$_scriptUrl=str_replace('\\','/',str_replace($_SERVER['DOCUMENT_ROOT'],'',$_SERVER['SCRIPT_FILENAME']));
else
throw new Exception('The App is unable to determine the entry script URL.'));
return rtrim(dirname($_scriptUrl), '\\/');
}
我希望這可以幫助別人。
1
什麼樣的糖漿「倒」在你的php.ini文件中?它可能已經把工作搞糊塗了! ;)
你通過瀏覽器查看輸出HTML(查看> Page Source),你得到的是http://js/file.js
? src="http://js/file.js"
在標籤中嗎?添加http://domain.com/
應該是瀏覽器的工作,而不是服務器。某些瀏覽器顯示已添加域的URL,而其他瀏覽器則準確顯示您發送到該頁面的內容。您是否發送可能缺少域名的標籤?我認爲它只適用於相對於的URI,但它值得檢查。你真的使用js/file.js或/js/file.js嗎?他們非常不同。
相關問題
- 1. 使用Apache處理通配符子域名,不包括www,包括SEF
- 2. NEST棄用領域包括]
- 3. Apache「別名」不包括某些域
- 4. Rails的:包括不包括
- 5. htaccess的域重定向包括子域
- 6. 使用Webpack包括來自CDN的React,但不包括ReactDOM
- 7. 包括PHP變量的作用域
- 8. 包括使用SBT包
- 9. 包括使用respond_with
- 10. 包括使用JSON
- 11. 使用插包括
- 12. MVC3 - 使用包括
- 13. 使用XSL包括
- 14. 不包括使用實體框架
- 15. 使用包括不改變行爲
- 16. 不能使用w3school HTML包括
- 17. 不能使用get_query_var包括在WordPress
- 18. SQL SELECT使用(),但不包括其他
- 19. Gcc使用sqrt不包括math.h
- 20. 使用包括在不同情況下
- 21. PHP包括使用服務器的用戶名,而不是域名
- 22. 不包括URL
- 23. PHP包括內包括不工作
- 24. 的ActiveRecord包括to_json不包括關係
- 25. rsync的包括不包括規則
- 26. Qt似乎不包括MinGW包括
- 27. 使用htaccess允許拒絕php包括但不包括互聯網用戶
- 28. 包括不起作用
- 29. C++包括不起作用
- 30. 用於計算不包括#
這是瀏覽器在做!但我也是我的錯。我把答案作爲修正 – earl3s
你的回答讓我思考了正確的方向,非常感謝。 – earl3s