私のApache wwwディレクトリには、私が取り組んでいるさまざまな個人プロジェクトのサブディレクトリがあります。元:
www/webApp1 www/webApp2
私は webApp2 にアクセスしますhttp://localhost:81/webApp2
(私は現在ポータブル wamp を実行しているため、ポート 81 を使用しています。今は問題ありません...)
ここでは仮想ホストを使用していません。使用する必要があるかもしれませんが、それについてはあまり知りません。
したがって、私の webbApp2 にはutil/files.php
、次の機能を持つファイルがあります。
function BaseUrl ()
{
$baseDir = dirname(dirname(__FILE__));
$pos = strrpos($baseDir, '\\');
if (!$pos)
{
$pos = strrpos($baseDir, '/');
}
$theDir = substr ($baseDir, $pos + 1);
if ($theDir == 'public_html')
{
$theDir = '~johnny5'; //Hmmmmm...
}
return 'http://'.$_SERVER["HTTP_HOST"].'/'.$theDir;
}
このメソッドを任意の php ファイルから呼び出して、URL を「解決」できます。
require_once("util/files.php");
$myUrl = BaseUrl ().'/someFolderAtTheRootOfWebApp2/myfile.css';
$css = $baseUrl.'/css/tab.css';
それから$css
です"http://localhost:81/webApp2/someFolderAtTheRootOfWebApp2/myfile.css"
。そうすれば、たとえば、css または javascript ファイルへのリンクを動的に生成できます。
asp.Net では、 と書きstring url = Page.ResolveUrl ("~/folder/file.css");
ます。
それは機能しますが、これを行うためのよりエレガントな方法があるのではないかと思います。おそらく、それを処理するためにphpに組み込まれているものがあります。public_html
さらに重要なことは、Linux ボックスでアプリを実行したときに userdir を処理するためのパッチを確認できることです。それは本当に移植性がありません。
助言がありますか?