2015-12-19 46 views
1

我在.htaccess文件中的这些重写规则:JavaScript文件路径

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

product_info.php

的js变焦使用率:

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

即使是绝对路径没有解决问题。

如何解决这个问题?

+0

404没有发现,当我跑的片段 –

回答

1

你的问题是,你的相对URI有他们的基础改变。最初,当页面为/product_info.php时,基数为/,并且浏览器正确填充与/基数的相对链接。但是当浏览器转到/product_info/foo/bar这样的页面时,基地突然变为/product_info/foo/bar,它会尝试在所有相对URL前追加,因此它们都不会加载。

你可以让你的链接是绝对的,或在您的网页的标题(插图中的<head> </head>标签)更改URI基地:

<base href="/"> 
+1

<基本href =” /“>解决了问题!谢谢 :) –