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

时间:2018-01-01 07:14:25

标签: javascript cakephp plugins cakephp-3.x cakedc

我在我的Users插件中有register.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') ?>

但到目前为止没有任何工作......任何提示?

3 个答案:

答案 0 :(得分:0)

使用&#34;插件&#34; Cake中的单词含糊不清,因为插件可以本地化在plugins/目录中,也可以(通过Composer)安装到vendor/目录。

HtmlHelper中script();方法中的正确参数为Users.password-compare,但这适用于plugins/目录中的插件。

如果您使用插件,如供应商,并且您在bootstrap.php文件中有loadPlugin('CakeDC/Users'),并且文件中有正确的路径&#34; vendor / cakephp-plugins.php&#34;所有事情都可以正常工作。

答案 1 :(得分:0)

我最后只是添加了以下代码,工作正常但不像我喜欢的那样优雅......

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

答案 2 :(得分:0)

在Cakephp 3.4及以上的这项工作中:

<?php
/**
 * @var \App\View\AppView $this
**/
$this->Html->script('password-compare.js', ['block' => true]);
?>

没有['block'=&gt; true]不要在html中显示脚本标记。