PHP / Htaccess - проблема с загрузчиком - PullRequest
0 голосов
/ 28 августа 2011

У меня есть файл htaccess в корне, который перенаправляет каждый запрос страницы в определенный файл:

RewriteCond %{REQUEST_URI} !^/loader.php(.*)?$ [NC]
RewriteRule ^(.*)$         /loader.php?url=$1    [QSA,L]

Теперь перенаправление легко в loader.php

include($_SERVER['DOCUMENT_ROOT'] . '/' . $_GET['url']);

Я просто включил URL, например admin/index.php.

Если я оставлю код как есть, загрузчик включит файл и напечатает правильный HTML, но он не будет загружать никакие скрипты CSS или JS.Если я добавлю echo "test"; непосредственно перед включением, загрузчик загрузит файл CSS.Это то, что убивает меня.Нужно ли указывать что-то в заголовке HTTP?

Я уже пытался поместить <base url="" /> в заголовок index.php безрезультатно, но другая странная вещь заключается в том, что с Chrom, если я проверяю страницу и нажимаюпо ссылке я увижу правильный CSS.


Обновление 1

Я напечатал headers_list();.Я заметил одну вещь - когда я печатаю echo в headers_list, массив показывает тип содержимого, поэтому я попытался добавить его самостоятельно с помощью функции header(), но безрезультатно.Все еще работаю над этим.


Обновление 2

Я заметил еще одну вещь;если я добавлю тег <style></style> с некоторым CSS, он будет работать нормально, но если я использую тег <link />, это не так.Это не имеет никакого смысла.

1 Ответ

2 голосов
/ 28 августа 2011

Вы должны отправить правильные заголовки MIME для CSS и JavaScript (и изображений и т. Д.).Проще всего позволить Apache обрабатывать эти запросы.Поместите все CSS, JS и изображения в папку с именем «assets» или что-то в этом роде и измените htaccess на

RewriteCond %{REQUEST_URI} !^/assets/
RewriteCond %{REQUEST_URI} !^/loader.php(.*)?$ [NC]
RewriteRule ^(.*)$         /loader.php?url=$1    [QSA,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...