Less Symfony 2开发环境中的资产路径。路径起作用,但未应用样式

Less Symfony 2开发环境中的资产路径。路径起作用,但未应用样式,less,symfony-2.1,assetic,Less,Symfony 2.1,Assetic,我在Symfony 2和MopaBootstrapBundle中使用了带less的assetic 动态生成的css文件似乎有效,但未应用样式。如果我们转储这些资产,那么它在prod中确实可以工作,但我不想在dev中这样做,因为这与我所想的要点背道而驰 config.yml: assetic: debug: %kernel.debug% use_controller: false bundles: [ MopaBootstrapBundle

我在Symfony 2和MopaBootstrapBundle中使用了带less的assetic

动态生成的css文件似乎有效,但未应用样式。如果我们转储这些资产,那么它在prod中确实可以工作,但我不想在dev中这样做,因为这与我所想的要点背道而驰

config.yml

assetic:
    debug:          %kernel.debug%
    use_controller: false
    bundles:        [ MopaBootstrapBundle ]
    #java: /usr/bin/java
    filters:
        cssrewrite:     ~
        less:
            node:       /usr/local/bin/node
            node_paths: [/usr/local/lib/node_modules]
            # auto apply less to all .less files
            apply_to:   "\.less$"
config_dev.yml

assetic:
    use_controller: true
我的模板中包括:

{% stylesheets
    '@MopaBootstrapBundle/Resources/public/less/mopabootstrapbundle.less'
%}
<link href="{{ asset_url }}" type="text/css" rel="stylesheet" media="screen" />
我们清除prod缓存,并设置输出样式。在dev中,我得到零样式

我还跑过:

app/console assets:install --symlink web
Installing assets using the symlink option
Installing assets for Symfony\Bundle\FrameworkBundle into web/bundles/framework
Installing assets for Mopa\Bundle\BootstrapBundle into web/bundles/mopabootstrap
Installing assets for Symfony\Bundle\WebProfilerBundle into web/bundles/webprofiler
Installing assets for Sensio\Bundle\DistributionBundle into web/bundles/sensiodistribution
所有这些都与Javascript相同(遵循URL时文件会解析)


我做错什么了吗?

你是用app_dev.php粘贴URL还是不粘贴URL?如果文件真的解决了问题,那么它应该可以正常工作,而不是Sf2问题。您的webroot是否指向“web”目录?如果没有,请尝试删除链接href中的前导“/”,或将其更改为正确的路径。在dev中,我通常有如下内容:

<link href="http://myapp-static.dev/myapp/web/app_dev.php/css/all.css" media="screen" type="text/css" rel="stylesheet">


我预先准备了一个“assets_base_url”变量(我在twig globals and parameters.yml中定义了该变量),这就是结果url。如果我改用“/app_dev.php/css/all.css”,它就会失败,因为浏览器会将其解释为”http://myapp-static.dev/app_dev.php/css/all.css“

同样的事情也发生在我身上 下面是我如何解决的

我已将config_dev.yml中的此资产设置更改为

assetic:
    use_controller: false
删除了dev缓存,它正常工作了

注意:如果您正在使用MAMP,请确保遵循此链接中的内容


我也遇到了这个问题,我也在使用它,但它被错误配置了:

fos_rest:
    format_listener:
        rules:
            - { path: '^/', priorities: ['json', 'html'], fallback_format: html, prefer_extension: true }
这个规则现在适用于应用程序的每个请求,并且只知道json和html,因为.css不匹配,所以它使用application/json

正确地说,应该是:

fos_rest:
    format_listener:
        rules:
            - { path: '^/api', priorities: ['json', 'html'], fallback_format: html, prefer_extension: true }                
            - { path: '^/', priorities: [ 'html', '*/*'], fallback_format: html, prefer_extension: true }
最后一行适用于尚未匹配的所有内容,它告诉/使用内部匹配的内容或类似的智能内容。
use_controller:true
再次生效

我肯定粘贴了完整的URL,包括app_dev.php。我的VHost的webroot指向project\u root/web。现在,我刚刚抛售了资产abd将在稍后再讨论这个问题
fos_rest:
    format_listener:
        rules:
            - { path: '^/', priorities: ['json', 'html'], fallback_format: html, prefer_extension: true }
fos_rest:
    format_listener:
        rules:
            - { path: '^/api', priorities: ['json', 'html'], fallback_format: html, prefer_extension: true }                
            - { path: '^/', priorities: [ 'html', '*/*'], fallback_format: html, prefer_extension: true }