我正在使用Assetic为我的Symfony2项目加载CSS文件。 CSS加载正确,我可以在检查Chrome中的元素/来源时查看它,但页面仍未设置样式。此时文件中唯一的内容是:
Assetic Generated: core_part_1_base_1.css
body {
background-color: yellow;
}
::base.html.twig:
<html>
<head>
{% stylesheets '@AcmeCoreBundle/Resources/public/css/*.css output='css/core' %}
<link rel="stylesheet" type="text/css" href="{{ asset_url }}" />
{% endstylesheets %}
</head>
<body>
<div id="main_container">Hello World</div>
</body>
</html>
config.yml:
...
assetic:
debug: %kernel.debug%
use_controller: false
bundles: [ ]
filters:
cssrewrite: ~
...
删除样式表块并替换为此行:
<link rel="stylesheet" type="text/css" href="{{ asset('css/core.css') }}" />
似乎已经奏效了,但我希望尽可能使用样式表块来实现它!
答案 0 :(得分:1)
我认为您必须在Assetic配置的bundles
选项中添加要在其中使用Assetic的捆绑包:
assetic:
bundles: [AcmeCoreBundle]
此外,在输出名称中添加扩展名可能会有所帮助:output='css/core.css'
答案 1 :(得分:0)
您的网页“未被设置样式”是一个相当模糊的陈述。你的CSS没有加载或只是图像?
如果您的css文件中有@imports
或引用图片,那么在您的javascripts块中,您必须使用filter='cssrewrite'
才能正常工作:
{% stylesheets '@AcmeCoreBundle/Resources/public/css/*.css filter='cssrewrite' output='css/core.css' %}
<link rel="stylesheet" type="text/css" href="{{ asset_url }}" />
{% endstylesheets %}
此外,您的输出似乎没有.css扩展名,我不知道这是否重要,但您不妨尝试。
另一方面,有些时候,由于某些原因,当我在样式表块中添加output
选项时,它在生产环境中不起作用,但它在开发中起作用。我发现最简单的解决方案就是不使用output
,并使用像Grunt这样的外部工具连接/ uglify /最小化我的文件。