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