使用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 %}
答案 0 :(得分:0)
在继续之前 - 请仔细阅读this answer ...
现在实际上有两种可能的原因让我想到了。
首先,cssrewrite过滤器不适用于@Bundle
- 语法。 (documentation reference)
您必须在树枝模板中包含这样的样式表:
{% stylesheets 'bundles/my/css/style.css' filter='cssrewrite' %}
<link rel="stylesheet" type="text/css" href="{{ asset_url }}" />
{% endstylesheets %}
此外,为了将您的资产转储用于生产......
app/console assetic:dump --env=prod
...确保使用正确的环境设置转储它们。 (reference)