模板文件中的CakePHP 3插件引用JS

ih99xse1  于 2022-11-11  发布在  PHP
关注(0)|答案(4)|浏览(113)

我有我的注册.ctp模板文件在我的用户插件,我想引用一个js文件,也在我的插件

vendor/cakedc/users/webroot/js/password-compare.js

如何在模板文件中引用此js文件?
我试过了

<?= $this->Html->script("password-compare"); ?>
<?= $this->Html->script("Users.password-compare"); ?>
<?= $this->Html->script("/Users/webroot/js/password-compare"); ?>

然后再

<?= $this->fetch('script') ?>

但到目前为止还没有任何效果...有什么提示吗?

wqsoz72f

wqsoz72f1#

在Cake中使用“plugins”一词是不明确的,因为插件可以本地化在plugins/目录中,也可以安装(通过Composer)到vendor/目录。
HtmlHelper中script();方法中正确参数为Users.password-compare,但这是针对plugins/目录中插件
如果你使用的插件像供应商,你有loadPlugin('CakeDC/Users')在bootstrap.php文件,并有正确的路径在文件“vendor/cakephp-plugins.php”所有的事情应该是工作正常。

gojuced7

gojuced72#

我已经结束了只是添加下面的代码,工作正常,但不像我可能喜欢的优雅...

<script src="<?= $this->request->webroot ?>/cake_d_c/users/js/password-compare.js"></script>
vxbzzdmp

vxbzzdmp3#

在Cakephp 3.4中,我完成了以下工作:

<?php
/**
 * @var \App\View\AppView $this

**/

$this->Html->script('password-compare.js', ['block' => true]);
?>

如果不使用['block' =〉true],则不会在html中显示脚本标记。

sxissh06

sxissh064#

对于不熟悉短回声标记的人来说,这是一个不会立即明显的小细节。
这一点:

<?= $this->Html->script("Users.password-compare"); ?>

与以下内容相同:

<?php echo $this->Html->script("Users.password-compare"); ?>

您需要回显资产。这是我的脚本没有加载的问题,因为我是从2.10迁移的,在那里不需要回显。
请访问https://book.cakephp.org/3/en/plugins.html#linking-to-assets-in-plugins

相关问题