我在Symfony的CSS中遇到了资产和我的图片路径问题。 我的基本模板,我的基本CSS以及此CSS中使用的图像位于app / Resources文件夹中。
我有这个:
app/
Resources/
public/
css/
base.css
images/
mybackground.png
views/
base.html.twig
在文件base.css
中,我想加载文件mybackground.css
作为背景,所以我有这一行:
background-image: url('../images/mybackground.png');
在文件' base.html.twig'中,我用以下内容加载css:
{% stylesheets '@base_css' filter='cssrewrite' %}
<link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="{{ asset_url }}" />
{% endstylesheets %}
我也试过没有过滤器cssrewrite
。
在app/config/config.yml
中,我有这个:
assetic:
filters:
cssrewrite: ~
assets:
base_css:
inputs:
- '../app/Resources/public/css/base.css'
在尝试之前,我使用了所有这些命令:
php app/console cache:clear
php app/console cache:clear --env=prod
php app/console assetic:dump
php app/console assetic:dump --env=prod --no-debug
php app/console assets:install --symlink web
您可以猜到,我的背景图片未加载(浏览器返回404未找到错误)。 我在互联网上搜索了很多,我发现了类似的情况,但是有一些捆绑的资源不在app / Resources中。
答案 0 :(得分:0)
调用资产后:install和assetic:dump您将在web目录中找到您的文件(webservers文档根目录)httpd无法访问/ web中的所有文件,所以只需查看您的/ web文件夹并查看在bundles文件夹中
所以相对路径是
/bundles/bundlename/images/background.jpg
这可以在你的css文件中使用
答案 1 :(得分:0)
在捆绑包的public
目录中创建Resources
目录并运行assets:install --symlink
命令时,会在web/bundles
目录中创建一个符号链接,对应到您的捆绑名称。
此外,要检索图像,您应该使用网络目录的相对路径而不是资产的绝对路径,即:
/bundles/bundlename/images/background.jpg
修改强>
如果您真的不想将它们放入捆绑包中,只需将它们从app/Resources
直接移到web
文件夹,然后使用以下命令在您的css中调用它:
url('/images/background.jpg');