symfony2 – 如何在Symfony 2和Twig中包含CSS文件?

前端之家收集整理的这篇文章主要介绍了symfony2 – 如何在Symfony 2和Twig中包含CSS文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在玩Symfony2,我有问题包括CSS和JS文件在Twig模板。

我有一个名为Webs / HomeBundle的包,其中我有HomeController与indexAction,呈现一个树枝模板文件

public function indexAction()
{
    return $this->render("WebsHomeBundle:Home:index.html.twig");
}

所以这很容易。现在我想做的是在这个Twig模板中包含一些CSS和JS文件。模板看起来像这样:

<!DOCTYPE html>
<html>
<head>  
    {% block stylesheets %}
        <link href="{{ asset('css/main.css') }}" type="text/css" rel="stylesheet" />
    {% endblock %}
</head>
<body>
</body>
</html>

我想包括文件,main.css文件位于:

Webs/HomeController/Resources/public/css/main.css

所以我的问题基本上是,我怎么在Twig模板中包含简单的CSS文件

我使用Twig asset()函数,它只是没有击中正确的CSS路径。此外,我在控制台中运行此命令:

app/console assets:install web

这创建了一个新文件

/web/bundles/webshome/...

这只是链接

src/Webs/HomeController/Resources/public/

对?

问题

>在哪里放置您的资产文件,JS,CSS和图像?是否可以将它们放在Bundle / Resources / public文件夹中?这是他们的正确位置吗?
>如何使用资产函数将这些资产文件包含在您的Twig模板中?如果他们在公共文件夹,我如何包括他们?
>我应该配置别的东西吗?

解决方法

你正在做的一切正常,除了传递你的bundle路径到asset()函数

根据documentation – 在你的例子中,应该如下所示:

{{ asset('bundles/webshome/css/main.css') }}

提示:您也可以调用assets:install with –symlink key,因此它将在web文件夹中创建符号链接。这是非常有用的,当你经常应用js或css更改(这样,您的更改,应用于src / YouBundle / Resources / public将立即反映在web文件夹,而不需要调用assets:install)

app/console assets:install web --symlink

此外,如果您希望在子模板中添加一些资源,可以为Twig块调用parent()方法。在你的情况下会是这样:

{% block stylesheets %}
    {{ parent() }}

    <link href="{{ asset('bundles/webshome/css/main.css') }}" rel="stylesheet">
{% endblock %}
原文链接:https://www.f2er.com/css/222814.html

猜你在找的CSS相关文章