如何让这个Yii Extension显示资产图像?

时间:2013-03-16 11:48:53

标签: yii

Yii 1.1.8

问题:

我有一个slidewshow(nivo)扩展,它或多或少有效,但页面上没有显示图像,也没有动画或效果运行。我看到按钮占位符文本,我可以制作下一个和上一个,但没有效果或图像。

情境:

该扩展程序的assets文件夹具有以下结构:

assets/themes/default/default.css
assets/themes/default/arrows.jpg
assets/themes/default/bullets.jpg
assets/themes/default/bkground.jpg

default.css我有以下声明:

background:#fff url(bkground.jpg) no-repeat 50% 50%;
(...)
background:url(bullets.png) no-repeat;

等等,所以指向根。

这是此扩展程序的publishAssets()

$assets = dirname(__FILE__).'/assets';
$baseUrl = Yii::app()->assetManager->publish($assets);
if(is_dir($assets)){
 Yii::app()->clientScript->registerCssFile($baseUrl . '/themes/default/default.css';
} else {
 throw new Exception('Error: Couldn\'t publish assets.');
}

尝试:

我已经测试registerCssFile是否正在返回NULL,但事实并非如此。所以,我相信default.css已正确注册。

我已检查过这些文件是否出现在public_html / assets文件夹中,它们确实出现在:

public_html/assets/randomhash/themes/default/default.css(等等......)

为了确保它,我检查了Yii guts上的发布方法,并且:

publish($path,$hashByName=false,$level=-1,$forceCopy=false)

level=-1表示发布所有子目录和文件,所以也可以。

所以资产正在公布。

问题:

我不知道在哪里看更多,为了找到为什么这些图像在扩展工作正常时没有出现(但没有它们)。

有人能给我一些线索吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

你的CSS可以简单地用url(../ images / bkground.jpg)引用图像,而不需要知道资产哈希值。