繁体   English   中英

Symfony2-基于CSS的.html控制器响应

[英]Symfony2 - controller response with CSS based .html

我最近开始使用Symfony2进行工作,并创建了基本控制器:

    class HelloController extends Controller
{
    /**
     * @Route ("hello/{name}");
     */

    public function HelloAction($name)
    {
        $htmlResp = $this->render('hello/hello.html.twig', array('userName'=>$name));
        $htmlResp->headers->set('Content-Type', 'text/html');
        return $htmlResp;
    }
}

而我的hello.html文件只是包含bootstrap.css的基本代码:

.
.
.
{% block stylesheets %}
        <!-- Bootstrap core CSS -->
        <link href="{{ asset('css/bootstrap.min.css') }}" rel="stylesheet" />
        <!-- Custom styles for this template -->
        <link href="{{ asset('starter-template.css') }}" rel="stylesheet" />
        <!--<script src="../../assets/js/ie-emulation-modes-warning.js"></script> -->
    {% endblock %}
.
.
.
{% block body %}
    <nav class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
.
.
.

<div class="container">
        <div class="starter-template">
            <h1>Welcome!</h1>
            <p class="lead">Hello, my dear friend named : {{ userName }}</p>
        </div>

    </div><!-- /.container -->

{% endblock %}
.
.
.

(插入点可以缩短不重要的代码片段)。

输入“ localhost:8000 / hello / SomeName”的结果将显示纯HTML网站(根本没有加载CSS文件)。

我将对如何使用CSS强制它加载和显示格式正确的网站的任何提示表示感谢。

好吧。 如果您是我,请执行以下操作:

  1. 确保资产已安装
  2. 为了清楚起见-将您所有的资产都放在Web目录中(此目录是公共目录,因此当请求页面时,浏览器可以下载所需文件)
  3. 准备基本的手抄报。

  4. 在要渲染的模板中扩展基本模板(示例)

码:

{% extends "base.html" %}

{% block title %}Index{% endblock %}

{% block head %}
    <!-- some content here -->
{% endblock %}

{% block content %}
     <!-- some content here -->
{% endblock %}

现在,它已被隔离且保持一致,并且所有内容都包含在一个地方。 确保您的css文件的路径正确。 如果不确定,请仅查看页面源,然后尝试单击asset()生成的链接,并查看它是否将您带到该文件。

在基本模板中定义所有块,然后在其他模板中覆盖它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM