css - Symfony 2.7 + Sass + Assetic : Styles not applied/visible when using app_dev. php

标签 css symfony sass assetic

我想在我的 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 前端 Controller 时,不会应用来自 header.scss 的样式。仅呈现直接链接(不使用 Assetic)的其他文件的样式。

这很奇怪,因为当我检查生成/加载的 HTML 文件时,样式表似乎已正确包含:

<link rel="stylesheet" href="/app_dev.php/css/header_header_1.css" />

调用 /app_dev.php/css/header_header_1.css 直接显示样式表及其所有样式。

所以所有的风格看起来都很到位。一切都应该如此。除了没有呈现任何样式。

你知道如何解决这个问题吗?

最佳答案

我设法解决了问题:css 文件是用 Content-Type: text/html 而不是 text/css. 传输的。这是由 format_listener 设置引起的FOSRestBundle 的。将 css 添加到接受规则解决了这个问题。 css 文件现在作为 text/css 传输,一切正常。

关于css - Symfony 2.7 + Sass + Assetic : Styles not applied/visible when using app_dev. php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39331263/

相关文章:

javascript - 如何将动态元素添加到从 React ref 中提取的特定 Html 节点?

jquery - jQuery UI Slider 的 CSS 上下按钮

symfony - 如何解决 php app/console 中的 bundle 生成 :doctrine:crud

php - 使用没有保存按钮的 Symfony 爬虫发送表单(自动保存功能)

html - 某些自定义 <li> 和 <span> 标签中的垂直对齐问题

ios - CSS - 滚动时坚持到 iOS Safari 的底部

jquery - 圣诞快乐互动留言

php - 如何使用 Google Drive 获取文件修改日期

css - 如何在 sass mixin 中为每个属性添加值?

twitter-bootstrap - 如何使用Bootstrap 4(3)Mixin