我在Symfony 2和MopaBootstrapBundle中使用的资产较少。
动态生成的css文件似乎有效但未应用样式。如果我们转储资产然后它确实有效,但我不想在开发中这样做,因为这与我认为的整个观点相反。
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" />
渲染的html是:
<link href="/app_dev.php/css/bab9907_mopabootstrapbundle_1.css" type="text/css" rel="stylesheet" media="screen" />
此文件解析后,我可以将URL粘贴到地址栏中并查看有效的CSS文件。
此外,如果我们在prod中转储资产,它也可以运作
app/console assetic:dump --env=prod
我们清除prod缓存并输出样式。在开发中我得到零造型。
我也跑了:
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时解析)
我做错了吗?
答案 0 :(得分:3)
我也碰到了这个,我也在使用FosRestBundle并且配置错误了:
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
再次发挥作用
答案 1 :(得分:0)
您是否使用app_dev.php粘贴了网址?如果文件真的解析了,它应该正常工作,并且不是Sf2问题。你的webroot指向'web'目录吗?如果没有,请尝试删除链接href中的前导'/',或将其更改为正确的路径。在开发中我通常有这样的东西:
<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和parameters.yml中定义),这就是结果URL。如果我使用'/app_dev.php/css/all.css'代替它会失败,因为浏览器会将其解释为'http://myapp-static.dev/app_dev.php/css/all.css'< / p>
答案 2 :(得分:0)
同样的事发生在我身上 所以这就是我如何解决它
我已将config_dev.yml中的此资产设置更改为此
assetic:
use_controller: false
删除了开发缓存并且工作正常
注意:如果您使用的是MAMP,请务必关注此链接中的内容