首先:我刚接触Symfony2,正在写我的第一个项目。
我正在写一个画廊,我想在几个Symfony项目中使用。
我的总体想法是将整个画廊打包在一起。API应该只是gallery- ContollerAction中的一个单独的控制器。我想通过调用将画廊包含在网站中
WebsiteTemplate:
{{ render(controller( "MyGalleryBundle:Gallery:build")) }}这个WebsiteTemplate是从一个带有css、js等块的baseTemplate扩展而来的……
BaseTemplate:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml2/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta charset="UTF-8" />
[...]
<title>{% block title %}{% endblock %}</title>
{% block head %}
{% block css %}{% endblock %}
{% block js %}{% endblock %}
{% endblock %}
</head>
<body>
{% block menu %}{% endblock %}
{% block body %}{% endblock %}
</body>
</html>看起来一切都很正常( html结构被渲染在正确的位置),但是css没有被放入html文件的头部,而是放在html作用域中,这导致没有css被解析。
我试图通过简单地调用bastTemplate中的块来实现它,如下所示:
[ setting some twig variables ]
{% block head %}
{% block css %}
{% stylesheets
'bundles/doublebeatsgallery/css/base.css'
'bundles/doublebeatsgallery/css/picture.css'
'bundles/doublebeatsgallery/css/page.css'
output="bundles/doublebeatsgallery/css/compiled/main.css"
%}
<link type="text/css" href="{{ asset_url }}" rel="stylesheet">
{% endstylesheets %}
<script type="text/css">
{% set tpl = galleryConfig.look.template %}
.tmpl_box:hover {
z-index: 5;
margin-left: -{{(tpl.popUpWidth - tpl.width)/2}}px;
margin-top: -{{(tpl.popUpHeight - tpl.height)/2}}px;
}
</script>
{% endblock %}
{% endblock %}
<div id="galleryHeader" class="galleryBaseContainer backA">
<div id="pContainer"><span>{{selectedGallery}}</span></div>
</div>
[... rest of html ]发布于 2014-02-18 01:21:38
您不必重写head块本身,只需重写内部css块。我不确定这是否能解决你的问题,但你可以试一试。
https://stackoverflow.com/questions/21835266
复制相似问题