【问题标题】:CSS modifications are not refreshed in Symfony2, dev environment在 Symfony2、开发环境中 CSS 修改不刷新
【发布时间】:2013-10-14 23:56:55
【问题描述】:

这是一个反复出现的问题,但没有一个建议的解决方案能说服我。

根据文档,在使用开发环境时,对资源/public/css中CSS文件的修改会立即刷新,但不是。

所有解决方案都是我需要发出assetic:dump 命令,但这不是解决方案。如果我这样做,几个 JS 和 CSS 文件会填充 web 文件夹的 JS 和 CSS 目录,其中大部分是重复文件。所以,这不是解决方案。

目前,我的 CSS 和 JS 文件夹中只有在使用 app.php 入口点时加载的生产环境的 CSS 和 JS 文件。

当我使用 app_dev.php 入口点时,网站正常工作,加载了 CSS,加载了 JS,但不属于 Resources/public 文件夹的那些。

CSS URL 是这样的:http://compromisos.local/app_dev.php/css/base_style_1.css。对应的 CSS 文件是 style.css。

我发现 CSS 来自 web/bundles/mybundle/css(或 js)文件夹。因此,当我更改 Resources/public 文件夹中的 CSS 文件时,我需要先发布资产。

我试图将资产配置为使用 CSS 和 JS rom Resources/public 文件夹,但没有成功。

这是我迄今为止尝试过的:

# Assetic Configuration
assetic:
    debug:          %kernel.debug%
    use_controller: false
    read_from:      %kernel.root_dir%/Resources/public/
    write_to:       %kernel.root_dir%/../web/
    bundles:        [ FOSUserBundle, DesytecGestionBundle ]

我们将不胜感激。

【问题讨论】:

    标签: symfony assets assetic


    【解决方案1】:

    我在开发环境中经常使用的东西

    我的assetic 配置参数:

    assetic:
        debug:          %kernel.debug%
        use_controller: true # set to true in config_dev.yml{1} otherwise default to false{2}
        # bundles:        [ ]
        filters:
            cssrewrite: ~
    

    {1} config_dev.yml {2}config.yml

    那我就这么做:

    • php app/console assets:install
    • php app/console assetic:dump --watch(在 2.4 中已弃用,您应该使用:php app/console assetic:watch)

    我还通过以下方式引用我的文件:

    {% stylesheets '@AcmeDemoBundle/Resources/public/css/style.css' %}
      <link href="{{ asset_url }}" rel="stylesheet" media="screen" />
    {% endstylesheets %}
    

    【讨论】:

    • 我已经解决了css问题,但是出现了一个新问题,它与CSS文件中引用的图像有关。当在开发模式下运行应用程序时,assetic 将 CSS 中的图像链接转换为 ../Resources/public/images,这当然不存在于公共 Web 文件夹中。我该如何解决这个问题?
    • 如果您在我的回答中使用该解决方案,那么有两种方法可以处理这个问题(可能更多),要么将图像放在 web/images 中,然后通过 ../images/filename.extension 在 CSS 中引用它们或者您可以参考/bundles/bundlename/images/filename.extension 之类的完整路径。当您运行命令assets:install 时,它将在web/bundles 的各自捆绑文件夹中安装不同的资产。
    • 谢谢!我终于使用了第一种方式...我已将图像放在 /web/images 文件夹中,并由 CSS 中的 url(/images/......) 引用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多