可能标题没有任何意义,所以我会详细解释我的问题。
假设我有www.mysite.com,其中我有div的背景图片,onclick(),div改变背景图片。一切都很好。当我有子文件夹时,问题开始,例如,myblog。它看起来像www.example / myblog / post1.php。在post1我有相同的背景相同的div,但是onclick它不起作用,因为链接是目标img,它不存在。
在第一种情况下,jquery可以做到这一点:www.mysite.com/assets/img/picture.jpg(这是实际位置)
在第二种情况下,jquery正在添加以下链接:www.mysite.com/myblog/assets/img/picture.jpg 代码很简单,就像你想象的那样。 onclick做
$('#div').css("background-image", "url("assets/img/picture.jpg")");
所以,当我添加../assets/img/picture.jpg时,事情会起作用,但它在根目录中不起作用。
我尝试过使用url + assets / img / picture.jpg,但我得到www.mysite.com/www.mysite.com/...etc (是的网址是正确的。)
所以我的问题是,如何处理这个问题?包括像页眉和页脚一样。如果我在root上有“include”文件夹,如果我在/blog/post1.php中,我就无法链接到它。我一直在努力解决这个问题,所以我想得到一些提示。
如果它有任何区别,我正在使用codeigniter ....
谢谢!!
答案 0 :(得分:1)
每当我将文件引用打印到页面中时,我会相对于根地址打印它:
要包含文件http://mysite.com/assets/img/picture.jpg
,我会使用/assets/img/picture.jpg
引用。因此,浏览器将从根(/
)页面开始查找此文件。
如果将整个网站移动到另一个文件夹,这将是一个问题。这就是我为每个应用程序设置全局设置的原因,即“路径”设置。
E.g。应用程序http://mysite.com/app1/具有“path”设置=“app1”。当我打印一个页面的文件引用时,我会考虑这个设置,如:
$file_path = "assets/img/picture.jpg";
echo "/$site_path/$file_path";
这将打印/app1/assets/img/picture.jpg
。如果由于某种原因我需要在http://mysite2.com/anotherappname/中再次安装此应用程序,我只需将全局路径设置更改为“anotherappname。
答案 1 :(得分:0)
我通常在PHP中设置$domain
的变量,看起来像http://www.example.com/
(注意尾部斜杠)。然后,我echo
将此变为Javascript变量,如下所示:
<script>
var domain = '<?php echo $domain; ?>';
</script>
此变量随后也可在Javascript中使用。我可能会这样使用它:
<script>
$('#div').css("background-image", "url('" +domain + "assets/img/picture.jpg')");
</script>
如果您需要更改$domain
,则更改会逐步显示到您的Javascript,这很方便。