Здесь возникает вопрос, потому что мое текущее решение на самом деле не удовлетворяет меня для следующей проблемы:
У меня есть собственная PHP-структура с шаблоном MVC в разработке. И мой Маршрутизатор работает отлично, и у меня есть один вопрос, на который я не мог найти решение.
Ну, я направляю каждый входящий запрос в файл index.php, который находится в базовом пути моей рамки. Конечно, не стоит работать с относительными путями при включении css, например:
<link rel="stylesheet" type="text/css" href="style/include/css/style.css" />
Это прекрасно работает в браузере. Конечно, не имеет значения, что я вхожу в URL-адрес, потому что каждый запрос перенаправляется, как указано выше, в индекс, чтобы сделать разумную маршрутизацию возможной.
Однако, когда мой url содержит несколько слэшей, которые выглядят как подпапки, например: "/manual/details/1_2", я получаю обычный процесс маршрутизации, но браузер не может найти файл css, если я не добавлю "../" для каждый "/" в моем URL-адресе, чтобы вернуться назад к базовому пути.
Например, для вышеуказанного URL это будет работать вместо:
<link rel="stylesheet" type="text/css" href="../../style/include/css/style.css" />
Мое текущее решение:
Я написал функцию PHP в классе Routing, которая определяет требуемое количество шаблона "../", и я всегда выполняю функцию перед реализацией ресурса для создания точного путь в любое время.
Пример:
<link rel="stylesheet" type="text/css" href="<?=Router::getInstance()->getSubdirectoryPrefix()?>style/include/css/style.css" />
Излишне говорить, что это очень неудобно, а также отстой, если вы забыли разместить эту функцию. Если ваш маршрут когда-либо изменился или вы забыли, что находитесь в подкаталоге, вы задаетесь вопросом, почему ваш ресурс не найден.
Я также знаю о размещении псевдонима, такого как Alias /public style/в моей конфигурации виртуального хоста Apache, но я хочу найти другой - внутренний проект и внутренний PHP, не имея необузданного дерьма, такого как вставка функции псевдонима все времени и без настройки виртуального хоста, чтобы структура могла оставаться легкой и не требовала каких-либо неприятных внешних параметров, таких как изменение Virtual-Host.
Мне бы хотелось услышать ваши решения, лучше всего было бы .htacces - о, и, говоря об этом, я оставляю здесь свой код .htaccess:
RewriteEngine On
Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php [L]
Заранее благодарим за помощь ~