Symfony2 - “编译”SCSS后路径错误 - > CSS

时间:2014-12-02 15:58:26

标签: php symfony path sass

我的CSS文件中的路径有问题。以下是我的配置和结构:

nginx conf:

listen  127.0.0.1:80;

location ~ ^/(app|app_dev|config)\.php(/|$) {

fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}

root /home/test/WWW/test/web;
server_name test.dev;

# strip app.php/ prefix if it is present
rewrite ^/app_dev\.php/?(.*)$ /$1 permanent;

location / {
index app_dev.php;
try_files $uri @rewriteapp;
}

location @rewriteapp {
rewrite ^(.*)$ /app_dev.php/$1 last;
}

access_log  /home/user/WWW/_logs/test_access.log;
error_log   /home/user/WWW/_logs/test_error.log;

/home/user/WWW/test/app/Resources/views/base.html.twig 包含以下内容:

{% block stylesheets %}
<link href="{{ asset('css/application.css') }}" media="screen" rel="stylesheet" type="text/css"/>
{% endblock %}

{% block javascripts %}
<script src="{{ asset('js/application.js') }}" type="text/javascript"></script>
{% endblock %}

/home/user/WWW/test/app/config/config.yml 包含以下内容:

assetic:
     debug:%kernel.debug%
     use_controller:false
     捆绑:〜
     过滤器:
         青菜:
             bin:/ usr / local / bin / sass
         cssrewrite:〜
     资产:
         application_css:
             输入:
                  - %kernel.root_dir%/ .. / web / _stylesheets / application.scss
             过滤器:
                  - sass
                  - cssrewrite
             输出:css / application.css

所以我使用SASS和--scss参数将scss文件编译为css,使用Symfony2过滤器设置。我感兴趣的项目文件的结构是:

TEST
|
---“_ stylesheets”
(里面的“application.scss”文件)
|
---“css”
(里面的“application.css”文件)
|
---“images”
(里面的“bg.png”文件)

“application.scss”位于“_stylesheets”文件夹中 “css”是用于编译scss(so CSS)文件的文件夹。

我遇到的问题是:“application.css”中的某些行如下:

body {
background: url("../images/bg.png");
}

当我运行一个应显示此图像的页面时,我面临类似的404错误:

“NetworkError:404 Not Found - http://test.dev/images/bg.png
(尽管显示错误的路径在视觉上是正确的)

我尝试将图像甚至CSS文件放在捆绑资源文件夹(/ public / scss和public / images)中,没有任何效果 - 它显示了与路径相同的问题,因此路径正确但未找到图像(404)当图像存在时。

有人可以告诉我这里有什么问题,或者要改变什么以使其正常工作?我已经尝试解决这个问题了一周。谷歌搜索,搜索,阅读,测试..没有结果。

1 个答案:

答案 0 :(得分:0)

无论如何,我能够部分地解决我的问题。当我提出例如&#34; test.png&#34;将文件放入MyBundle / Resources / public / images /,然后运行命令:php app / console assetic:dump(将其呈现在:/web/images/test.png中),然后CSS文件中的路径如&#34 ; ../图像/ test.png&#34;奇迹般有效。但是,如果源图像位于例如:http://aaa.aaa.com/_stylesheets/中,那么渲染的文件(尽管它在/ web /文件夹中呈现)不会被CSS识别出来&#34;背景网址&#34;。那是为什么?