【问题标题】:Javascript file path after rewriting dynamic url重写动态url后的Javascript文件路径
【发布时间】:2015-12-19 21:36:45
【问题描述】:

我的.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&amp;item_name=Bicycle

重写url后->/product_info/451/Bicycle

product_info.php中的js缩放用法:

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

即使是绝对路径也不能解决问题。

如何解决这个问题?

【问题讨论】:

  • 我运行你的 sn-p 时找不到 404

标签: javascript php .htaccess mod-rewrite


【解决方案1】:

您的问题是,您的相对 URI 的基数已更改。原来,当页面为/product_info.php时,base为/,浏览器正确填写了/base的相关链接。但是当浏览器转到像/product_info/foo/bar 这样的页面时,基础突然变为/product_info/foo/bar,它会尝试将其附加到所有相对 URL 的前面,因此它们都不会加载。

您可以将链接设为绝对链接,也可以更改页面标题中的 URI 基础(在 &lt;head&gt; &lt;/head&gt; 标记之间):

<base href="/">

【讨论】:

  • 解决了这个问题!谢谢:)
猜你喜欢
  • 2021-07-07
  • 2014-09-30
  • 2014-11-17
  • 1970-01-01
  • 2018-09-04
  • 2012-02-05
  • 1970-01-01
  • 1970-01-01
  • 2017-12-01
相关资源
最近更新 更多