.css文件未在Symfony2

时间:2015-09-14 08:40:52

标签: css image symfony twig loadimage

我对Symfony2很新,并尝试创建我的第一个php应用程序。

一切正常,直到我在.css文件中设置背景图片。出于某种原因,.css文件的所有更改(背景颜色,字体等)都反映在我的new.html.twig文件接受图像中。

我的印象是我做了所有应该做的事情,但可能是错误的顺序(下面在新套装中完成):

  1. Resources / public / css创建了style.css文件(这就是它的样子):

    .test{
         font-size: 25px;
         background-color: yellow;
    }
    
    .topstyles {
        width: 135px;
        height: 113px;
        background-color: blue;
    }
    
    .topstyleg {
        background-image: url(images/ice.png);
    }
    
    .col2{
        position: absolute;
        left: 300px;
        top: 100px;
    }
    
    .form-control {
        margin-bottom: 3px;
    }
    
  2. 将图片放置在Resources / public / images

  3. 下的bundle文件夹中
  4. 在我的new.html.twig

    中添加了.css文件的链接
    {% block stylesheets %}
       {% stylesheets '@TestTestBundle/Resources/public/css/*' filter='cssrewrite' %}
       <link rel="stylesheet" href="{{ asset_url }}" type="text/css"/>
       {% endstylesheets %}
    {% endblock %}
    
  5. 运行php app / console资产:安装web --symlink。因为我的系统不支持符号链接,所以只复制了我的捆绑包资源文件夹中的文件,包括.css和图像。

  6. 每次对我的bundle / Resources文件夹中的任何文件夹中的任何文件进行更改时,我都会重新运行资产:安装所有更改都会反映在web / bundles / testtestbundle中。

  7. 使用php app / console assetic:dump to dump,在root / web目录下创建单独的css文件夹,其中.css文件如下所示

    .test{
         font-size: 25px;
         background-color: yellow;
    }
    
    .topstyles {
        width: 135px;
        height: 113px;
        background-color: blue;
    }
    
    .topstyleg {
        background-image: url(../../Resources/public/css/images/ice.png);
    }
    
    .col2{
        position: absolute;
        left: 300px;
        top: 100px;
    }
    
    .form-control {
        margin-bottom: 3px;   
    }
    
  8. 使用php app / console cache清除缓存:clear --env = prod --no-debug

  9. 由于某种原因,所有变化都反映在接受图像上。

    我已经尝试过的资源是:

    以及其他一些资源,但无论我做什么,它似乎都不起作用。

    有可能我没有安装一些需要的捆绑包但是:   - 我无法弄清楚哪一个   - 如果缺少某些东西,我认为我不会从.css文件上传任何格式,我只能让图像无法正常工作,其余的加载就好了。

    任何帮助都将受到高度赞赏,因为我花了几个小时来试图解决这个问题。

2 个答案:

答案 0 :(得分:0)

After a bit of trial and error and thanks to Dric512 i was able to resolve this issue.

Is seems like i have used incorrect link (at least it is incorrect in my case) in my new.html.twig

{% block stylesheets %}
   {% stylesheets 'bundles/testtestbundle/css/*' filter='cssrewrite' %}
   <link rel="stylesheet" href="{{ asset_url }}" type="text/css"/>
   {% endstylesheets %}
{% endblock %}

Also, as my images were in the different folder then my .css files i has to refer to them like this:

.test{
    font-size: 25px;
    background-color: yellow;
}
.topstyles {
    width: 135px;
    height: 113px;
    background-color: blue;
}

.topstyleg {
    background-image: url(../images/ice.png);
}

.col2{
    position: absolute;
    left: 300px;
    top: 100px;

}
.form-control {
    margin-bottom: 3px;   
}

all this is done in by src/Test/TestBundle/Resources/css/style.css file i have created.

When this is done, i have created assets using: php app/console assets:install web -- symlink

When that is done i ran php app/console assetic:dump and php app/console cache:clear just in case.

Works like charms.

答案 1 :(得分:-1)

我知道这个答案没有回答这个问题,但我建议将DataURIs用于css图像,它们在没有任何源文件的情况下工作,你不需要保存原始图像。它减少了HTTP请求。

或者,不要使用Assetic捆绑包,请使用standard assets