【问题标题】:How to include css from resources folder in symfony 2如何在 symfony 2 中包含资源文件夹中的 css
【发布时间】:2012-01-12 14:17:31
【问题描述】:

我的 css 位于

app/Resources/FOSUserbundle/css

如何在我的树枝模板中包含它

我将 css 放在那里的原因是我所有覆盖的 FOSUser 模板都在该文件夹中。所以我想把css、js图像都保存在那里,这样如果我需要在其他网站上使用,我只需复制那个文件夹

【问题讨论】:

    标签: php html css symfony fosuserbundle


    【解决方案1】:

    我不太确定如何将其包含在 TWIG 模板中,但是...

    1) 我把我使用的资源放在 web/ 目录下的几个 bundles/projects 中。然后你可以这样引用:

    {% stylesheets 'css/styles.css' %}
    <link href="{{ asset_url }}" type="text/css" rel="stylesheet" />
    {% endstylesheets %}
    

    2) 如果您仍然需要覆盖 FOSUserbundle,您可以将资源放在继承包中,像这样引用它们:

    {% javascripts '@YourBundle/Resources/public/js/scripts.js' %}
    <script type="text/javascript" src="{{ asset_url }}"></script>
    {% endjavascripts %}
    

    【讨论】:

      【解决方案2】:

      你所做的一切都很好。

      只需执行以下操作:-

      $ app/console assets:install web
      

      它将资产安装在公共的“web”目录中,从技术上讲,资产应该在该目录中,以便与您的 Twig 模板一起使用。

      然后可以像这样在 Twig 模板中使用资产:-

          {% block stylesheets %}
              <link href="{{ asset('/css/main.css') }}" type="text/css" rel="stylesheet" />
          {% endblock %}
      
      
          {% block javascripts %}
              <script src="{{ asset('/js/main.js') }}" type="text/javascript"></script>
          {% endblock %}
      

      【讨论】:

      • 但资产只会链接到 web/css.... 文件夹,但我的 css 是 app/resources/....
      • 如果你从一个包中安装资源,你也需要包含包路径,例如:{{asset('bundles/acmedemo/css/contact.css') }} 从医生:symfony.com/doc/current/book/…
      【解决方案3】:

      尽管问题建议并覆盖大小写,但它也要求 css 或 js 位于公共文件夹中,远离包结构。

      一个答案是使用可用的树枝变量。例如,如果我有一个 css 文件位于此处

      app/Resources/views/clientSite/customFolder/css/mycss.css
      

      我可以使用类似这样的方式加载任何模板(请注意,该示例覆盖了完整的样式表块,但不是必需的,样式表树枝标记可以添加到任何块中):

      {% block stylesheets %}
          {{ parent() }}
          {% stylesheets '%kernel.root_dir%/Resources/views/clientSite/customFolder/css/mycss.css'
          %}
          <link rel="stylesheet" type="text/css" href="{{ asset_url }}" />
          {% endstylesheets %} 
      {% endblock %}
      

      还记得执行assetic:dump 命令,这样symfony 就知道它必须将css 与所有其他文件一起发布到web/css 文件夹。

      【讨论】:

        猜你喜欢
        • 2012-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-31
        • 1970-01-01
        相关资源
        最近更新 更多