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

Kar*_*rtz 14 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>
Run Code Online (Sandbox Code Playgroud)

但它不起作用.那么我应该包括什么来获取视图文件中的js和css文件?

aro*_*hev 7

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

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

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

您可以创建自己的AssetBundle.

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

使用这两个选项,你需要做的就是常见的情况 - 填充$js$css数组,以及$depends在需要时设置依赖项.

您可以通过以下链接阅读更多内容.

2)使用registerCssFile()registerJsFile().

第一种方法更可取,并在官方文档中推荐.它为您提供依赖性处理等等.

官方文档:


Nae*_*rzu 7

对于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)