3

我想在我的插件中添加一个 JavaScript 文件。我正在关注本教程,并且能够在我的安装(流浪者)中成功获得每日标语。

此外,我想加载一个 JavaScript 文件。我更改了 index.tpl 并添加了以下几行:

   {* Include own Javascript Code *}
    {block name="frontend_index_header_javascript_jquery_lib"}
      {debug}
      {$smarty.block.parent}
      {if $myVariable}<script type="text/javascript" src="{link   file='frontend/_public/src/js/myFile.js'}"></script>{/if}
    {/block}

看一下生成的 html 的源代码,脚本标签就成功加载了。但是,我的 JavaScript 文件根本不会被加载。我必须将文件放在我的插件文件夹中的哪里?

目前我有这个结构

NameOfZipfile.zip
└──Frontend
   ├─MyPlugin
   │ └─Views
   │   ├─_public
   │   │ └─src
   │   │   └─js
   │   │     └─myFile.js
   │   └─frontend
   │     └─index
   │       └─index.tpl
   └─Bootstrap.php

我正在使用商店软件 5.2.11。我不想添加内联脚本。我究竟做错了什么?

4

2 回答 2

3

(代表 OP 发布)

解决方案,我在 Bootstrap.php 安装方法中添加了以下内容:

$this->subscribeEvent('Theme_Compiler_Collect_Plugin_Javascript', 'addJsFiles');

而这个功能:

 public function addJsFiles(Enlight_Event_EventArgs $args){
    $jsFiles = array(__DIR__ . '/Views/_public/src/js/myFile.js');

    return new Doctrine\Common\Collections\ArrayCollection($jsFiles);
}
于 2016-11-30T12:35:25.320 回答
0

如果使用 grunt,您将使用此命令将所有插件的 js 文件添加到您的 /web/cache/config_' + shopId + '.json' 文件: bin/console sw:theme:dump:configuration

于 2021-07-14T09:50:24.343 回答