2016-07-05 2 views
1

У меня возникли проблемы с загрузкой css и изображений, когда мой url заканчивается на /. Я работаю с моей Localhost и URLs переписаны в виде:CSS, изображения и JS не загружаются из-за перезаписи url

localhost/mysite/public/user/testuser/books/1234 

С просьбой загружающего страницу профиля пользователя TestUser и изменения состояния страницы, чтобы сосредоточиться на книге с идентификатором 1234.

Все работает нормально с localhost/mysite/public/user, но в тот момент, когда я ввожу// или/testuser URL, CSS, JS и изображения ломаются. У меня есть переписывание URL-адресов на месте и чтение нескольких сообщений, в которых говорится о проблеме перезаписи .htaccess. Вот структура моего сайта:

mysite/ 
    app/ 
     controllers/ 
     models/ 
     etc... 
    public/ 
     css/ 
      styles.css 
     images/ 
      profilepic.png 
     js/ 
    index.php 

Все изображения, JS и CSS ссылаются с помощью относительного пути: например: ../public/css/styles.css.

Содержание .htaccess являются:

Options -MultiViews 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

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

Существовал также примечание об исключении CSS, JPEG, и т.д. ... файлы из переписывания с помощью:

RewriteCond %{REQUEST_URI} !^.*\.(css|jpe?g|gif|png|js|ico)$ [NC] 

К сожалению, ни один из этих вариантов не работал, и я не знаю, где еще я должен смотреть. Есть идеи?

+0

Возможный дубликат [Seo Friendly Url css img js не работает] (http://stackoverflow.com/questions/31241701/seo-friendly-url-css-img-js-not-working) – starkeen

+0

Помог ли ответ для вас или что? –

+0

Да, спасибо. Это сделал трюк. Я никогда не сталкивался с реальной реализацией . Это заставляет меня задаться вопросом, что делают некоторые из более крупных сайтов для решения этой проблемы, которые имеют аналогичную переписку. – Runicode

ответ

1

Если вы не хотите, чтобы изменить каждый экземпляр при перемещении сайта, просто обновить <head> раздел вашего заголовка страницы HTML и добавьте

<base href="http://www.example.com/" /> 

или

<base href="/" /> 

Это будет позаботьтесь об этой проблеме, и вам не нужно обновлять все экземпляры до абсолютных путей.