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