使用symphony框架我做了转储资产资产:安装。 css文件很难复制到/web/bundles/appbundle/css/style.css我猜css中的背景图像我应该有一个相对路径到达/ web /文件夹之外吗?
background-image: url(../../../../bundles/appbundle/images/top_bg.jpg);
但它还没有工作,我有过滤器=' cssrewrite'在css标签中也是如此。可能我必须补充一点,我只是在资源安装后编辑位于上面路径的css文件,我没有编辑/ Acme / Bundle / Resources / public / css中的那个。然后我确实运行了资产:dump,现在在/ web /文件夹中有两个文件夹用于图像和css,我查看了新的css并看到路径变成这样:
background-image: url(../../bundles/applicationadmin/images/top_bg.jpg);
但仍然所有图像都被破坏了。我搜索stackoverflow并找到this question,但仍然有问题。我该怎么办?
请告知。答案 0 :(得分:5)
首先,确保您的css和图像位于正确的文件夹中。
src/AppBundle/Resources/public/css/style.css
src/AppBundle/Resources/public/images/top_bg.jpg
运行资产资产后:安装,检查您的网络目录中是否有文件夹。它必须是Resources / public的相同副本。
web/bundles/app/css/style.css
web/bundles/app/images/top_bg.jpg
你的style.css文件应如下所示:
background-image: url("../../images/top_bg.jpg");
但是,如果您直接在twig模板上配置css,则网址不同:
<style>
div { background-image: url("/bundles/app/images/top_bg.jpg"); }
</style>
答案 1 :(得分:1)
要使它在树枝上工作,请试试这个
<div class="container" style="background-image:url('{{ asset('bundles/appbundle/images/top_bg.jpg') }}')"> ,
当然假设您已将软件包的Web资产安装在公共Web目录下。
答案 2 :(得分:0)
我可以通过以下步骤解决此问题:
即:
<link type="text/css" rel="stylesheet" rev="stylesheet" href="{{ asset('/build/css/header.css') }}">
<style >
.header { background-image: url('{{ asset('build/img/logo.png') }}') !important; }
</style>
您的背景图片已正确更改。输出如下:
<link type="text/css" rel="stylesheet" rev="stylesheet" href="/build/css/header.5c7b2ca6.css">
<style >
.header { background-image: url('/build/img/logo.bb1272f9.png') !important; }
</style>
这不是使用Webpack的最佳方法。但是,这是一种重构过期代码的临时解决方案。下一步应该是使用SCSS创建入口点并构建样式。然后,Webpack会照顾样式中资产的正确使用。