Symfony 2.7 + Sass + Assetic:使用 app_dev.php 时样式不是 applied/visible
Symfony 2.7 + Sass + Assetic: Styles not applied/visible when using app_dev.php
我想在我的 Symfony 2.7 WebApp 中使用基于 Sass
的样式。到目前为止,我已经使用 Compass
将 Sass 文件(不在 web/
目录中,而是在 Bundles 中)编译为 CSS 文件。这工作正常,但在新服务器上 Ruby 不可用,因此 Compass 不再是一个选项。
在 Symfony Docu 之后,我已将 leafo/scssphp 添加到项目并在配置文件中激活:
# app/config/config.yml
assetic:
filters:
scssphp:
formatter: 'Leafo\ScssPhp\Formatter\Compressed'
# ...
Twig
个模板中的 Sass 个文件:
{% stylesheets
'MyMainBundle/Resources/styles/sass/header.scss'
filter="scssphp"
output="css/header.css" %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
在 non-dev 模式下使用 Symfony 时效果很好:
php app/console assetic:dump --env=prod --no-debug
文件 web/css/header.css
已创建,一切正常。但是,当使用 app_dev.php
前端控制器时,不会应用 header.scss
中的任何样式。仅呈现直接链接(不使用 Assetic)的其他文件的样式。
这很奇怪,因为当我检查 generated/loaded HTML 文件时,样式 sheet 似乎被正确包含:
<link rel="stylesheet" href="/app_dev.php/css/header_header_1.css" />
直接调用 /app_dev.php/css/header_header_1.css
显示样式 sheet 及其所有样式。
所以所有的风格看起来都很到位。一切都应该如此。除了没有呈现任何样式。
你知道如何解决这个问题吗?
我设法解决了问题:css 文件是用 Content-Type: text/html
而不是 text/css.
传输的 这是由 format_listener 的 [=12] 设置引起的=].添加 css 到接受规则解决了这个问题。 css 文件现在作为 text/css
传输,一切正常。
我想在我的 Symfony 2.7 WebApp 中使用基于 Sass
的样式。到目前为止,我已经使用 Compass
将 Sass 文件(不在 web/
目录中,而是在 Bundles 中)编译为 CSS 文件。这工作正常,但在新服务器上 Ruby 不可用,因此 Compass 不再是一个选项。
在 Symfony Docu 之后,我已将 leafo/scssphp 添加到项目并在配置文件中激活:
# app/config/config.yml
assetic:
filters:
scssphp:
formatter: 'Leafo\ScssPhp\Formatter\Compressed'
# ...
Twig
个模板中的 Sass 个文件:
{% stylesheets
'MyMainBundle/Resources/styles/sass/header.scss'
filter="scssphp"
output="css/header.css" %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
在 non-dev 模式下使用 Symfony 时效果很好:
php app/console assetic:dump --env=prod --no-debug
文件 web/css/header.css
已创建,一切正常。但是,当使用 app_dev.php
前端控制器时,不会应用 header.scss
中的任何样式。仅呈现直接链接(不使用 Assetic)的其他文件的样式。
这很奇怪,因为当我检查 generated/loaded HTML 文件时,样式 sheet 似乎被正确包含:
<link rel="stylesheet" href="/app_dev.php/css/header_header_1.css" />
直接调用 /app_dev.php/css/header_header_1.css
显示样式 sheet 及其所有样式。
所以所有的风格看起来都很到位。一切都应该如此。除了没有呈现任何样式。
你知道如何解决这个问题吗?
我设法解决了问题:css 文件是用 Content-Type: text/html
而不是 text/css.
传输的 这是由 format_listener 的 [=12] 设置引起的=].添加 css 到接受规则解决了这个问题。 css 文件现在作为 text/css
传输,一切正常。