无法获得图片资产

时间:2013-05-13 15:40:10

标签: laravel laravel-4

为什么我无法让图像生效。我正在尝试这个:

background-image: url(jBootstrap/images/ui-icons_222222_256x240.png);

它不起作用。当我试图访问它时,我得到一个错误:

  

资产[stylesheets / jBootstrap / images / ui-icons_222222_256x240.png]无法处理。

无法获取任何图像,在目录的许多变体中尝试过但仍无法正常工作。当我在普通的html-css上这样做时,它可以完美地工作,但不是在laravel中。我做错了什么?

顺便说一下,如果它有帮助,我正在使用Basset。

编辑1

还包括有关我的公共文件夹的部分结构和basset生成的html链接的附加信息:

  • 公共/
    • 样式表/
      • jBootstrap /
        • 图像/
          • UI-icons_222222_256x240.png
      • main.css it contains the background-image...

当包含css文件时,在源代码中我看到:

<link rel="stylesheet" type="text/css" href="http://localhost/Job/worker/myapp/public/7n3C5wypAmTi8VT8/application/stylesheets/main.css" />

编辑2

添加我的public / .htaccess文件:

<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

编辑3

尝试另一种方式:
public/stylesheets/main.css
public/stylesheets/abc.jpg
main.css我有代码:body { background-image: url('abc.jpg') },我什么也没得到......

请帮忙,现在挣扎2天......

3 个答案:

答案 0 :(得分:1)

发现问题......这是Basset包,它需要将$collection->apply('UriRewriteFilter');放入配置中。

答案 1 :(得分:0)

我自然会认为这里有一个(或两个)错误:

  1. 重写时,.htaccess文件未检查现有文件。检查该文件中是否存在RewriteCond {%REQUEST_FILENAME} !-f

  2. 您没有从根请求您的背景图片,即绝对。尝试使用前导斜杠请求资源。例如,请尝试拨打foo.png

  3. ,而不是致电/foo.png

答案 2 :(得分:0)

尝试在您的收藏中使用setArguments('../')

'collections' => array(

        'application' => function($collection) {
            $collection->add('../vendor/twitter/bootstrap/less/bootstrap.less')->apply('Less');

            $directory = $collection->directory('assets/stylesheets', function($collection) {
                $collection->add('main.css');
            })->apply('UriRewriteFilter')->setArguments('../')->apply('CssMin');
        }
 ),

这对我有用。