如何禁止在模块的 view.yml 中包含传递的 JavaScript 和样式表文件?

发布于 2024-12-28 06:32:38 字数 358 浏览 1 评论 0原文

在 symfony1.1 中,我开发了一个模块,该模块不应包含其应用程序的任何传递的 javascript 和样式表。

因此,我创建了一个特定于模块的 view.yml,但我找不到禁用它们的语法。

我原来的问题只涉及 JavaScript 和 CSS。但现在我想删除元数据和http_tags。出于某种原因,我得到的是:

all:
  http_metas: [-*]
  metas: [-*]

实际标签

<meta name="0" content="-*" />

有人知道这里有什么不同吗?

In symfony1.1, I develop a module that shall not include any of the passed down javascripts and stylesheets of its application.

I hence I created a module-specific view.yml, yet I cannot find the syntax for disabling them.

My original question involved only JavaScript and CSS. But now I want to remove metas and http_tags as well. For some reason I get for:

all:
  http_metas: [-*]
  metas: [-*]

the actual tag

<meta name="0" content="-*" />

Does anyone know what's different here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

初懵 2025-01-04 06:32:38

您可以排除所有传递的 JavaScript 和样式表,或仅删除特定的 JavaScript 和样式表。

例如:

indexSuccess:
  stylesheet: [-style]

或:

indexSuccess:
  stylesheet: [-*]

You can exclude all the passed down javascripts and stylesheets, or remove just specific ones.

For example:

indexSuccess:
  stylesheet: [-style]

or:

indexSuccess:
  stylesheet: [-*]
零時差 2025-01-04 06:32:38

元数据似乎不可能


您可能会发现自己想要删除应用程序中特定模块的默认元标记。这是通过 view.yml 或 module.yml 不可能实现的...解决方案是扩展 sfWebResponse 类,覆盖 getMetas() 方法。这使我们能够过滤掉不需要的标签,而不影响特殊行为,例如标题标签。

class myWebResponse extends sfWebResponse
{
  public function getMetas()
  {
    $meta_tags = $this->parameter_holder->getAll('helper/asset/auto/meta');
    if ($this->getContext()->getModuleName() == 'special_module' && array_key_exists('bad_meta', $meta_tags)) {
      unset($meta_tags['bad_meta']);
    }
    return $meta_tags;
  }
}

It does not seem possible for metas:


You may find yourself wanting to remove default meta tags for specific modules within your application. This isn't possible through view.yml or module.yml ... The solution is to extend the sfWebResponse class, overriding the getMetas() method. This allows us to filter out unwanted tags without affecting special behaviour, e.g. for the title tag.

class myWebResponse extends sfWebResponse
{
  public function getMetas()
  {
    $meta_tags = $this->parameter_holder->getAll('helper/asset/auto/meta');
    if ($this->getContext()->getModuleName() == 'special_module' && array_key_exists('bad_meta', $meta_tags)) {
      unset($meta_tags['bad_meta']);
    }
    return $meta_tags;
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文