3

只是在尝试让 Assetic 在呈现的网页中生成组合链接时遇到了一些问题。文件本身生成良好,但在生产环境的网页中,我继续看到单独的文件 URL(在生产中不起作用,因为那些未组合的文件不可用)。

在模板中,我有:

{% stylesheets
    '@TBundle/Resources/public/css/bootstrap/bootstrap.css'
    '@TBundle/Resources/public/css/bootstrap/bootstrap-responsive.css'

    '@TBundle/Resources/public/css/jquery-selectbox/jquery.selectBox.css'
%}
    <link href="{{ asset_url }}" rel="stylesheet" media="screen" />
{% endstylesheets %}

在生产中,这仍然呈现为:

<link href="/css/2f787d0_bootstrap_1.css" rel="stylesheet" media="screen" />
<link href="/css/2f787d0_bootstrap-responsive_2.css" rel="stylesheet" media="screen" />
<link href="/css/2f787d0_jquery.selectBox_3.css" rel="stylesheet" media="screen" />

尽管如此,当我调用时,php app/console assetic:dump --env=prod我得到:

11:13:43 [dir+] /var/www/tbundle/app/../web/css
11:13:43 [file+] /var/www/tbundle/app/../web/css/2f787d0.css

我正在使用 Symfony2 的默认 Assetic 设置。关于可能导致这种情况的任何想法?

4

1 回答 1

15

我遇到了同样的问题,对我来说问题出在我的 app.php 文件中。我正在按如下方式加载内核:

$kernel = new AppKernel('prod', true);

似乎这导致该功能无法在调试模式下运行并合并资产。当我将第二个参数更改为 false 时,资产在生产中成功组合,而在开发中保持未组合:

$kernel = new AppKernel('prod', false);

此外,您可以将 combine=true 作为参数传递,以显式请求组合资产,以测试此功能是否正常工作。

于 2012-11-11T08:41:09.583 回答