我的.htaccess
文件中有这些重写规则:
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>
即使是一条绝对的道路也无法解决问题。
如何解决这个问题?
您的问题是,您的相对URI的基更改了。最初,当页面为/product_info.php
时,基础为/
,并且浏览器正确地填充与/
基础的相对链接。但是,当浏览器转到像/product_info/foo/bar
这样的页面时,基础突然变成/product_info/foo/bar
,它试图将其附加在所有相关URL之前,因此没有加载它们。
您可以使链接成为绝对链接,也可以更改页面标题中的URI基(在<head> </head>
标签之间):
<base href="/">