我尝试制作Yii2扩展名,只想在扩展程序文件夹中注册一个css文件。
Css文件目录是:Object reference not set to an instance of an object
我必须使用registerCssFile函数。
project_folder\vendor\extension-ven\extension-name\assets\css\main.css
我必须在registerCssFile函数中写入url。我无法使用别名public void registerCssFile ( $url, $options = [], $key = null )
我是否使用别名的方法,但给我一个供应商网址?
由于
答案 0 :(得分:1)
建议的方法是:
Asset
和js
文件为扩展程序准备css
课程。 Example here。指向资产文件夹的内部添加sourcePath
属性(删除basePath
和baseUrl
属性)。
public $sourcePath = '@vendor/extension-ven/extension-name/assets';
在您的扩展程序类中注册您的Asset
课程(即如果这是Widget
,您可以使用run()
方法执行此操作;这假设您的扩展程序实现了ViewContextInterface
}接口,如Widget
class)。
YourAssetName::register($this->view);
调用扩展程序时,所有资产文件都会自动从源文件夹复制到公共assets
文件夹中的web
文件夹。