내 apache www dir에서 작업하는 개인 프로젝트의 서브 디렉토리가 있습니다. 예 : 나는 그것은 중요하지 않습니다 지금 포트 (81)에있어 왜asp.net의 ResolveUrl에 해당하는 PHP
은 www /에서 webApp1 www /에서 webApp2
내가 (나는 현재 휴대용 WAMP를 실행http://localhost:81/webApp2
에 의해 webApp2에 액세스
, 그 ...)
여기에 가상 호스트를 사용하고 있지 않습니다. 어쩌면해야하지만, 그것에 대해 많이 알지 못합니다.
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;
}
내가 URL을 "해결"어떤 PHP 파일에서이 메서드를 호출 할 수 있습니다
그래서 내 webbApp2, 나는 다음과 같은 기능을 가진 파일util/files.php
있습니다.
require_once("util/files.php");
$myUrl = BaseUrl().'/someFolderAtTheRootOfWebApp2/myfile.css';
$css = $baseUrl.'/css/tab.css';
그런 다음 $css
은 "http://localhost:81/webApp2/someFolderAtTheRootOfWebApp2/myfile.css"
입니다. 그런 식으로 내 CSS 또는 자바 스크립트 파일에 대한 링크를 동적으로 생성 할 수 있습니다.
asp.Net에서 나는 string url = Page.ResolveUrl ("~/folder/file.css");
이라고 쓸 것입니다.
효과가 있지만 좀 더 우아한 방법이 있는지 궁금합니다. 어쩌면 거기에 PHP에서 뭔가를 처리 할 수 있습니다. 그리고 더 중요한 것은 public_html
패치를보고 리눅스 박스에서 앱을 실행할 때 내 userdir을 처리 할 수 있습니다. 그건 정말 이식성이 아닙니다.
제안 사항?
나는 그 결과를 보여주기 위해 나의 질문을 편집했다. 내가하고 싶은 것은 정확히 asp.net의'Page.ResolveUrl ("~/somefolder/somefile.css")'또는'Page.ResolveClientUrl ("~/somefolder/somefile.css")의 동작입니다. – Johnny5