1

使用 cssrewrite 时,我得到的路径不正确。例如,在URL中使用 app_dev.php 或 app.php 时,它可以正常工作,mysite.com/site/app.php/login并且可以正常工作。但是,使用mysite.com/site/login将不起作用。

查看 CSS 文件时,我在访问时看到以下内容mysite.com/site/app.php/login

 src: url('../../bundles/acmetest/font/fontawesome-webfont.eot?#iefix&v=3.2.1')

查看 mysite.com/site/login 时的正确路径应该是:

 src: url('../bundles/acmetest/font/fontawesome-webfont.eot?#iefix&v=3.2.1')

这是我的 htaccess 文件:

DirectoryIndex app.php
<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]
    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule .? - [L]
    RewriteRule .? %{ENV:BASE}/app.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 302 ^/$ /app.php/
    </IfModule>
</IfModule>

有没有办法配置生产环境以知道它的路径是/,而不是app.php/正确配置 cssrewrite 路径?

这是我对资产的 Twig 配置:

{% block stylesheets %}
    {% stylesheets
        'bundles/acmetest/css/bootstrap.min.css'
        'bundles/acmetest/css/jquery-ui-1.10.3.custom.min.css'
        'bundles/acmetest/css/jquery.iphone.toggle.css'
        'bundles/acmetest/css/font-awesome.css'
        'bundles/acmetest/css/glyphicons.css'
        'bundles/acmetest/css/halflings.css'
        'bundles/acmetest/css/retina.min.css'
        'bundles/acmetest/css/style.css'
    filter='cssrewrite'
    %}
    <link rel="stylesheet" href="{{ asset_url }}" />
    {% endstylesheets %}
{% endblock %}
4

1 回答 1

0

在您继续之前 - 请仔细阅读此答案...


我现在想到的实际上有两个可能的原因。

起初 - cssrewrite 过滤器不适用于 -@Bundle语法。(文档参考

您必须在树枝模板中包含这样的样式表:

{% stylesheets 'bundles/my/css/style.css' filter='cssrewrite' %}
    <link rel="stylesheet" type="text/css" href="{{ asset_url }}" />
{% endstylesheets %}

此外,为了将您的资产转储用于生产用途......

 app/console assetic:dump --env=prod

...以确保使用正确的环境设置转储它们。(参考

于 2013-09-04T08:31:06.750 回答