$ sf_response-> addStyleSheet()在SF 1.4中不起作用?

时间:2010-01-20 00:31:27

标签: symfony1 stylesheet symfony-1.4

有没有人知道如何使用Symfony 1.4在模板中添加样式表?

我已经尝试了我能想到的一切,从修改frontend / config / view.yml到修改模板本身 - 两种方式都有效。

我从搜索中看到,其他人也有同样的问题。在使用include_stylesheets和use_stylesheets之间似乎存在冲突 - 但是在AFAIK的任何地方都没有记录。

3 个答案:

答案 0 :(得分:5)

修改

好的,我想我现在知道了。您应该将include_stylesheets()添加到布局文件的head部分:

<html>
   <head>
       <title>This is the title</title>
       <?php include_stylesheets() ?>
   </head>
   <body>
   <!-- ... -->

然后在模板文件中,使用use_stylesheet()为此模板添加特定样式表:

<?php use_stylesheet('/path/to/stylesheet.css') ?>

来自API documentation

  

include_stylesheets()
  为view.yml中配置的所有样式表打印<link>标记或添加到响应对象。

     

use_stylesheet()
  将样式表添加到响应对象。

Javascript也一样。


根据API documentation,它应该仍然适用于1.4,sfWebResponse仍有此方法:

addStylesheet ($file, $position, $options)   
  $file   The stylesheet file  
  $position   Position   
  $options    Stylesheet options  
Adds a stylesheet to the current web response.

至少存在这种方法 究竟是什么问题?如果你想调用那个方法或者没有添加样式表,你会收到错误吗?

答案 1 :(得分:4)

http://www.symfony-project.org/tutorial/1_4/en/upgrade#removal_of_the_common_filter

从1.4开始,您的javascripts和样式表不再自动注入到您的head标签中。相反,您需要在布局中包含以下内容:

<?php include_javascripts() ?>
<?php include_stylesheets() ?>

如果你的帖子标题不是拼写错误,你会想要在回复中使用addStylesheet('...'):

$sf_response->addStylesheet('main');

答案 2 :(得分:0)

$sf_context->getResponse()->addStylesheet('style.css')

$sf_context->getResponse()->addJavascript('script.js')