Symfony2/Assetic:在导入的HTML文件的资产路径中使用bundle注释



我使用Symfony 2.8为我的单页web应用程序。我有一个文件index.html.twig,它应该提供所有所需的资源。也许这是显而易见的,但我希望每次在开发环境中都重新加载所有内容,而不是在生产环境中。所述所需资源是从位于vendor文件夹中的另一个bundle的Resources加载的。

出于这个原因,我在config.yml中配置了astic,如下所示:

assetic:
    debug: "%kernel.debug%"
    use_controller:
        enabled: "%kernel.debug%"
    workers:
        cache_busting:
            enabled: "%kernel.debug%"

(我假设调试只在开发环境中启用)

我正在加载所需的CSS/JavaScript如下:

{% stylesheets
    '@StubbornShowaBundle/Resources/public/stubborn.css'
    '@StubbornShowaBundle/Resources/public/showa.css' %}
        <link type="text/css" href="{{ asset_url }}" rel="stylesheet" />
{% endstylesheets %}
{% javascripts
    '@StubbornShowaBundle/Resources/public/stubborn.js'
    '@StubbornShowaBundle/Resources/public/showa.js' %}
        <script src="{{ asset_url }}"></script>
{% endjavascripts %}

. .这似乎是预期的工作。但是,我也导入了HTML文件。像这样:

<link href="{{ asset('@StubbornShowaBundle/Resources/public/polymer/my-component.html') }}" rel="import"/>

但是,上面的代码不起作用。@StubbornShowaBundle注释在asset命令中似乎不可用。此外,似乎没有"循环方法"(或任何你想要调用的东西为stylesheets, javascriptsimages)的HTML导入。如果我直接链接到有问题的文件,除了会导致与周围代码完全不一致的丑陋hack之外,我还会破坏整个Symfony/Assetic自动处理资源重新排序系统,并且调试变得一团糟。我如何解决这个问题,而不是每次在调试时更改代码时都强迫我重新转储资产?(是否有可能以合理的方式解决?)

After assets:install &&你可以直接链接到:

href="/bundles/stubbornshowa/polymer/my-component.html"

看一下

/web/bundles/

目录

如果你只是更新文件,你可以使用assetic:dump——watch或assetic:watch

如果你把新文件放到你的资源中,你必须调用assets:install

在/web文件夹中你也可以创建一个名为uploads的文件夹把你的东西放到那里,你可以通过href="/uploads/…"那么你根本不需要任何资产

似乎不可能像使用JavaScript、CSS和图像那样在asset中使用HTML导入。从手册中引用:

您可以使用asset来处理CSS样式表,JavaScript文件和图像。


在我看来,应该做什么在很大程度上取决于情况(要求)。也许将所有内容都放入模板中也是一种可能性,但在我的特殊情况下,我必须导入Polymer组件,因此将这些HTML文件放入模板将是一场噩梦(因为语法冲突等原因)。因此,我使用url获得路径,并使用本答案中描述的方法。

最新更新