1

在 symfony2 中,css 中的背景图像在开发环境中运行良好,但在生产环境中却不行

这里是一个 CSS

background-image: url("../../bundles/acmeweb/images/logo-big.png");

在开发(开发)环境中,背景图像工作正常,而作为生产(产品)环境,图像没有出现。

我需要在图像 url 之间附加带有“web”的 url,以便在生产中工作,例如

background-image: url("../../web/bundles/acmeweb/images/logo-big.png");

图像位于MyBundle/Resources/public/images

如何纠正?

4

4 回答 4

2

Symfony2 对您的问题有完整的文档。仔细阅读:) http://symfony.com/doc/current/book/templating.html#linking-to-assets

所有图像和样式源应位于捆绑文件夹中:

src/MyBundle/Resources/public/css
src/MyBundle/Resources/public/images

但只有web文件夹可以从外部访问,所以当你执行命令时

app/console assets:install web --symlink

它会在web文件夹中创建指向您的文件的链接:

web/bundles/acmeweb/css
web/bundles/acmeweb/images

所以在 CSS 中你应该总是定义相对路径。在您的情况下,它将是:

background-image: url("../images/logo-big.png");

在树枝中,您应该使用asset()函数来链接您的样式:

<link href="{{ asset('bundles/acmeweb/css/yourstylesheet.css') }}" rel="stylesheet" type="text/css" />

而已

再次,仔细阅读文档 - 它包含所有这些基本内容;)

于 2012-07-24T14:25:27.063 回答
0

您正在使用相对路径来获取图像,这可能会导致一些问题。所以不要尝试绝对路径。

例如 path = 到达 logo-big.png 的绝对路径 这是 CSS 背景图像: url("path");

于 2012-07-11T08:10:59.280 回答
0

将路径更改为:

background-image: url("/bundles/acmeweb/images/logo-big.png");

您可能还想清除缓存:

php app/console cache:clear --env=prod
于 2012-07-11T16:25:17.707 回答
0

让其他来这里的人清楚

定义你的文件

  • mybundle/资源/公共/css

  • mybundle/资源/公共/图像

ETC

在您的 CSS 相关文件中引用您的图片,例如

body {
background: url('../images/mypicture.jpg') no-repeat center center fixed;
}

在你的树枝文件中

{% stylesheets 'bundles/mybundle/css/*' filter='cssrewrite' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

现在让它运行

php app/console cache:clear --env prod
php app/console cache:clear --env dev

php app/console assets:install

php app/console assetic:dump

现在是我的踢球者

php app/console assetic:dump --env prod

这让它为我工作,希望它可以帮助别人

于 2015-09-01T02:59:21.837 回答