2015-12-19 2 views
1

У меня есть эти правила перезаписи в моем .htaccess файле:Javascript путь к файлу после перезаписи динамического URL

RewriteEngine On 

RewriteRule ^product_info/([0-9a-zA-Z]+)/([0-9a-zA-Z_-]+)$ /product_info.php?item_id=$1&item_name=$2 [L,NC] 
RewriteRule ^product_info/ - [L,NC] 


RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*?)/?$ $1.php [L] 

все работало отлично, пока переписывания URL. Css, JS, изображения не загружаются больше, поэтому я изменил путь URL-адреса путем добавления/в самом начале:

<link href = "/Style/style.css" rel = "stylesheet" type = "text/css" /> 
<script src="/js/jquery-1.11.2.min.js"></script> 
<script src="/js/navigation.js"></script> 
<script src='/js/jquery-1.8.3.min.js'></script> 
<script src='/js/jquery.elevatezoom.js'></script> <----- NOT WOKRKING 

Это фиксированная моя проблема. Но почему-то jquery.elevatezoom.js все еще не работает, но все остальное просто отлично.

Я использую jquery.elevatezoom.js на этой странице:

/product_info.php?item_id=451&item_name=Bicycle

После перезаписи URL ->/product_info/451/Bicycle

Js использование зума в product_info.php:

<script> 
    $("#product_pix").elevateZoom(); 
</script> 

Даже абсолютный путь не устраняя проблему.

Как исправить эту проблему?

+0

404 не найден, когда я побежал ваш сниппета –

ответ

1

Ваша проблема в том, что ваши относительные URI изменили базу. Первоначально база /, когда страница /product_info.php, и браузер правильно заполняет относительные ссылки с базой /. Но когда браузер переходит на страницу типа /product_info/foo/bar, база внезапно становится /product_info/foo/bar, и она пытается добавить, что перед всеми относительными URL-адресами и, следовательно, ни одна из них не загружается.

Вы можете сделать ваши ссылки абсолют, или изменить базу URI в заголовке страниц (Inbetween в <head> </head> теги):

<base href="/"> 
+1

<базовый HREF =»/"> исправлена ​​проблема! Благодаря :) –

Смежные вопросы