我正在尝试包含我的插件和自定义js文件
前端/视图/布局/ main.php
所以我将这段代码用于js和css
<link rel="stylesheet" href="<?= Yii::$app->homeUrl; ?>chosen/chosen.css">
<script type="text/javascript" src="<?= Yii::$app->homeUrl; ?>js/jquery.fancybox.pack.js?v=2.1.5"></script>
Run Code Online (Sandbox Code Playgroud)
但它不起作用.那么我应该包括什么来获取视图文件中的js和css文件?
像你提到的那样包括它不受欢迎,并且定义不是"Yii风格".
有几种方法可以做到这一点:
1)使用资产包.它不一定是AppAsset捆绑在一起.默认情况下,它是常见的捆绑包并包含在主布局中,因此所有包含的资产都将在每个视图中发布.
您可以创建自己的AssetBundle.
请注意,对于外部资产(在Web可访问目录之外),您需要使用sourcePath,否则使用- basePath和baseUrl属性.
使用这两个选项,你需要做的就是常见的情况 - 填充$js和$css数组,以及$depends在需要时设置依赖项.
您可以通过以下链接阅读更多内容.
2)使用registerCssFile()和registerJsFile().
第一种方法更可取,并在官方文档中推荐.它为您提供依赖性处理等等.
官方文档:
对于CSS:
<?php
$script = <<< JS
// Js Code Here
JS;
$this->registerJs($script);
Run Code Online (Sandbox Code Playgroud)
对于JS:
<?php $style= <<< CSS
// CSS code here
CSS;
$this->registerCss($style);
?>
Run Code Online (Sandbox Code Playgroud)
这很好用.
小智 6
如果您想在特定视图中包含脚本或CSS文件,则可以使用以下命令:
$this->registerJsFile("/path/to/your/file/in/web/folder/script.js");
Run Code Online (Sandbox Code Playgroud)
要么
$this->registerCssFile("/path/to/your/file/in/web/folder/style.css");
Run Code Online (Sandbox Code Playgroud)