我的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)当图像存在时。
有人可以告诉我这里有什么问题,或者要改变什么以使其正常工作?我已经尝试解决这个问题了一周。谷歌搜索,搜索,阅读,测试..没有结果。
答案 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;。那是为什么?