MVC и mod_rewrite
1) заходим по адресу http://www.site.com/art/
2) Роут настроен так что art - контроллер.
В результате в ШАБЛОНЕ если указывать неполные пути (картинки или *.css), то результирующая ссылка получается http://www.site.com/art/css/styles.css, а должна быть http://www.site.com/css/styles.css. Почему так происходит?
Шаблон дизайна находится в каталоге app/views
настройки .htaccess
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
я ссылку никак не обрабатываю она жестко забита в шаблоне. как сделать так что бы даже с учетом контроллера и экшена в урле, система начинала отсчет с корневого каталога?
потом добавится экш и надо будет писать ../../css/styles.css? не, так не пойдет.
я ссылку никак не обрабатываю она жестко забита в шаблоне. как сделать так что бы даже с учетом контроллера и экшена в урле, система начинала отсчет с корневого каталога?
Слушай, давай не будим тупить, а?
Если действительно "она жестко забита в шаблоне" - то тогда все вообще очень просто - забиваешь нужную тебе, и вуаля, PROFIT! :)
Но на самом деле в "движке" существует класс/функция - задача которой - сформировать необходимый урл/отдать нужный контент.
Все что тебе нужно - унаследовать от этого класса (либо перегрузить функцию) - обработать ссылку твоего типа - и передать управление далее системе. По крайней мере так работает большинство нормальных систем. Если же ты столкнулся с ненормальной системой - то в любом случае тебе нужно найти механизм формирования урла, а уже исходя из этого можно что либо советовать. Но в любом случае мод_рерайт тут не причем - его задача - передать управление на index.php если запрошенный урл - не файл и не директория.
И кстати - абсолютный путь должен вполне спокойно открываться, если дополнительно конечно не закрыто в .htaccess.
RewriteRule ^(.*)css/styles.css$ /css/styles.css
Правда это наверное изврат, но работать должно.
И в шаблоне никто не использует joomla::Route('images/img1.jpg')... почему там это работает нормально?