在我的 apache www 目录中,我有我从事的不同个人项目的子目录。前任:
www/webApp1 www/webApp2
http://localhost:81/webApp2
我通过(我目前运行便携式 wamp,这就是我在端口 81 上的原因。现在没关系......)访问 webApp2
我在这里没有使用虚拟主机,也许我应该使用,但我对此了解不多。
所以对于我的 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 的补丁。这不是真正的便携。
有什么建议么?