gpt4 book ai didi

javascript - 带有 assetic 的 symfony 内联 Assets

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:15:16 28 4
gpt4 key购买 nike

我有以下基于 Symfony2 文档的代码:

    {% block javascripts %}

{% javascripts filter="?jsqueeze" output="js/app.js"
"%kernel.root_dir%/Resources/assets/js/one.js"
"%kernel.root_dir%/Resources/assets/js/two.js" %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}

{% endblock %}

这就像魅力一样。

我想做的,是代替

<script src="{{ asset_url }}"></script>

使用类似的东西:

<script> ... inline asset contents here ... </script>

我尝试了 assetic 文档并深入研究了 AsseticTokenParser 和 AsseticNode 类,但找不到引用实际文件路径而不是 url 的变量。

通常我用css而不是js来做,但应该是同一个概念。

谢谢!

最佳答案

在生产模式下,symfony 生成一个指向静态文件的链接,可以直接将其包含到模板中。此文件需要使用类似以下内容生成:

php app/console assetic:dump --env=prod --no-debug

在开发模式下,没有生成可以包含的静态文件。 asset_url 包含一个 url,它将调用 symfony Controller ,后者将动态生成所需的 js/css 文件。显然,在 symfony 中包含 Controller 的输出非常容易:

{% render asset_url %}

为了回答我自己的问题,可以编写一个 twig 扩展,其中包括一个静态文件或将请求转发到 render 方法,具体取决于它是在生产模式还是开发模式下调用的。

如果/当我写这样的扩展时,我会更新这个页面。

另一种选择是不使用 assetic 的开发模式,而是始终动态生成静态 css/js 文件:

php app/console assetic:watch

然后一个简单的 include 就可以了。

我希望 Symfony 中有一个开箱即用的方法来完成这个常见任务。

关于javascript - 带有 assetic 的 symfony 内联 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32902590/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com