也许这个问题的标题对你来说有点混乱,但我会详细解释。
想象一下,您正在开发一个网站(PHP SCRIPT),其中包含css中的图像,js文件和背景图片网址。 如果购买它的用户将其放在子文件夹中,则需要使其正常工作:
www.example.com/subfolder
或当他把它放在www.example.com
如果我在CSS中使用路径作为背景图像:
background: url(/assets/img/thumbs-up.png) no-repeat;
如果用户在www.example.com
中放置脚本,但如果他放在www.example.com/subfolder
,则浏览器会请求www.example.com/assets/img/thumbs-up.png
代替www.example.com/subfolder/assets/img/thumbs-up.png
通常使用此
解决background: url(assets/img/thumbs-up.png) no-repeat;
但不,在我的情况下,浏览器正在请求此网址
http://www.example.com/subfolder/assets/css/assets/img/thumbs-up.png
这部分assets/css
是CSS文件所在的位置。
我使用
解决了这个问题background: url(../../assets/img/thumbs-up.png) no-repeat;
这适用于根www.example.com
和www.example.com/subfolder
但这是一个好习惯吗?
对于JS文件,我包含这样的脚本
<script src="assets/js/single_load.js"></script>
这是有效的,因为具有此代码的文件位于脚本的根目录中。
(http://www.example.com/index.php
或http://www.example.com/subfolder/index.php
正在调用它,如果子文件夹中的文件名为JS,我认为我必须多次添加../
,具体取决于子文件夹文件的位置数。)
有什么想法,指导吗?
答案 0 :(得分:0)
在所有PHP脚本中为CSS文件使用一个路径。
图片路径位于 CSS 路径,而不是PHP
例如:
- index.php
- subfolder
--index.php
-assets
--css
---style.css
--img
的style.css
background: url(../assets/img/thumbs-up.png) no-repeat;
的config.php
<?php
$root_path = "www.example.com";
//OR $_SERVER["REQUEST_URI"]; if you have one index.php
root index.php
<?php include "config.php"; ?>
<link href="<?php echo $root_path;?>/assets/css/style.css">
子文件夹/ index.php的
<?php include "config.php"; ?>
<link href="<?php echo $root_path;?>/assets/css/style.css">