css中的图像路径无法正常工作

时间:2014-01-11 18:58:27

标签: css twitter-bootstrap laravel-4

我正在尝试在我的laravel项目中使用css文件中的图像,该项目使用了twitter bootstrap和Jason Lewis的Basset。

现在我在我的css中使用图像

.div {
  background: url('asset/img/photo.jpg');
}

我得到了

的路径
http://localhost/asset/css/less/assets/img/photo.jpg

但真正的路径应该是

http://localhost/~Username/laravelProject/public/asset/img/photo.jpg

实现此目的的唯一方法是在我的CSS中使用此URL

  

/../〜用户名/ laravelProject /公共/资产/ IMG / photo.jpg

如果我必须将网站从本地移动到服务器并且每次都必须更改所有网址,你们就会理解这是不行的。那么为什么这不能正常工作?我正在使用这个由andrew13

制作的laravel启动站点

startersite github

最后但并非最不重要..这是结构

enter image description here

1 个答案:

答案 0 :(得分:-1)

问题是路径低于css doc,相对文件路径通过将文件位置添加到url的开头来工作,这意味着它正在寻找(Mypath)/asset/img/photo.jpg

(或public/asset/css/asset/img/photo.jpg来自我所见)

没有PHP服务器返回动态网址,遗憾的是你只有两个选项:

  • 将CSS移至根目录,或至少低于IMG
  • 使用绝对网址

使用php你有几个选项,我最喜欢的是“节点”结构

这是如何工作的将php文件放在根文件夹中,以设置其位置的常量:

<?php
       define('ROOTPATH', dirname(__FILE__));
?>

如果你想使用它,只需包含该文件,然后使用ROOTPATH

 <?php
       include 'TheFileName.php';
       echo ROOTPATH,'/public/asset/img/photo.jpg';
?>

在大多数php服务器上,这已经设置为$_SERVER['DOCUMENT_ROOT'],但在本地主机上需要使用节点。

请注意这是sudo代码,有些事情可能需要更改