Yii2 - 如何在视图文件中包含外部js和css

时间:2015-05-29 07:50:01

标签: yii2

我正在尝试将我的插件和自定义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文件?

3 个答案:

答案 0 :(得分:7)

像你提到的那样包括它不受欢迎,并且定义不是“Yii风格”。

有几种方法可以做到这一点:

1)使用资产包。它不一定要放在AppAsset捆绑中。默认情况下,它是常见的捆绑包并包含在主要布局中,因此所有包含的资产都将在每个视图中发布。

您可以创建自己的AssetBundle。

请注意,对于外部资源(位于Web可访问目录之外),您需要使用sourcePath,否则使用basePathbaseUrl属性。

在常见情况下,您只需使用这两个选项即可 - 填写$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");