【问题标题】:Symfony 2.1 - problems loading assets and an exception thrown by asseticSymfony 2.1 - 加载资产的问题和资产抛出的异常
【发布时间】:2012-11-12 15:50:57
【问题描述】:

这有点令人沮丧。根据 Symfony 最佳实践,bundle 的 web 资产(图像、css、js)应该放在src/vendor/path/to/bundle/Resources/public。运行app/console assets:install 将该公用文件夹的内容复制到web/bundles/bundlename。在官方文档中,Twig 模板显示为使用如下代码获取这些资产:

{% block stylesheets %}
    <link rel="stylesheet" type="text/css" href="{{ asset('/css/styles.css') }}
{% endblock %}

当我尝试它时,它并没有神奇地从web/bundles/bundlename/css/styles.css 获取我的资产,而是直接用于web/css/styles.css。这是预期的行为吗?官方文档对此不太清楚。

为了尝试解决这个问题,我尝试采用资产动态服务资产的能力。我试过了:

{% stylesheets '@mybundle/Resources/public/css/*' %}
    <link rel="stylesheet" type="text/css" href="{{ asset_url }}" />
{% endstylesheets %}

但出现以下异常:

在编译模板期间引发了异常(“您必须将 mybundle 添加到 assetsic.bundle 配置中才能使用 mybundle:Home:index.html.twig 中的 {% stylesheets %} 标签。”)在“ /home/kevin/www/src/mybundle/Resources/views/Home/index.html.twig

official Symfony documentation 使它看起来可以开箱即用,无需任何配置。

所以,TLDR:

  1. 我不明白应该如何加载资产吗?
  2. 如何解决资产异常?

【问题讨论】:

    标签: php exception twig symfony-2.1 assetic


    【解决方案1】:

    要修复资产异常,您需要像这样在 config.yml 中配置您的包:

    assetic:
        bundles: [ MyAwesomeBundle ]
    

    {{ asset(...) }} twig 函数将从您的网络根目录提供相关文件。

    您使用 app/console assets:install 在您的 Web 根目录中安装静态资产,然后您可以使用 {{ asset('/mybundle/css/site.css') }} 这样的资产函数轻松指向它们

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-02
      • 2020-09-14
      相关资源
      最近更新 更多