Лучшая практика для создания переносимого кода для доменов, поддоменов или директоров - PullRequest
0 голосов
/ 31 декабря 2010

Я недавно что-то кодировал, где не было известно, будет ли конечный код находиться в поддомене (http://user.domain.com/) или в поддомене (http://domain.com/user),), и я заблудился в отношении наилучшей практики для этих неизвестных сценариев. думает о паре:

  1. Используйте абсолютные пути (/css/styles.css) и modrewrite, если он в конечном итоге / user
  2. Иметь файл настроек и объявить переменную с путем (<? php echo $domain . "/css/styles" ?>)
  3. Использовать относительные пути (../css/styles.css).

Как лучше всего справиться с этим?

Ответы [ 2 ]

1 голос
/ 31 декабря 2010

Если есть какие-либо вопросы о том, где что-то может быть развернуто, я бы по возможности избегал абсолютных путей, и если вы должны их использовать, обязательно создайте их, используя данные в суперглобальном элементе $_SERVER.Значение $_SERVER['PHP_SELF'] будет содержать путь и имя файла для исполняемого в данный момент сценария, и затем вы можете извлечь путь, используя что-то вроде:

$path = dirname($_SERVER['PHP_SELF']);

Аналогично, значение $_SERVER['HTTP_HOST'] будет содержать текущий хост,и из этих двух вместе вы можете построить путь туда, где вы находитесь.Если вы используете HTTPS, вам также может понадобиться проверить протокол в $_SERVER['HTTPS'].

. С учетом вышесказанного все же лучше использовать относительные пути и простую структуру файлов и каталогов, когда это возможно, поскольку этовсе более портативно и легче для чтения.Если, как в вашем примере, вы обнаружите, что много делаете ../css/styles.css, вы можете пересмотреть структуру вещей.

1 голос
/ 31 декабря 2010

Сочетание 2 и 3. Используйте пути относительно заданной переменной.

...