【问题标题】:How to get this Yii Extension to display assets images?如何让这个 Yii 扩展显示资产图像?
【发布时间】:2013-03-16 11:48:53
【问题描述】:

Yii 1.1.8

问题:

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

场景:

该扩展的资产文件夹具有以下结构:

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 表示发布所有子目录和文件,所以也可以。

所以资产正在发布。

问题:

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

谁能给我一个线索?

提前致谢。

【问题讨论】:

  • default.css 文件出现在<head> 内吗?
  • 是的。如果我点击它,我会得到想要的文件。

标签: yii


【解决方案1】:

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

【讨论】:

  • CSS 文件中的图像路径(如 background-url)总是相对于 CSS 文件引用。尝试使用 url(default/bkground.jpg)。
  • 你是对的。检查 bkground.jpg (default/bkground.jpg) 是否位于您的 public_html/assets/randomhash/themes 目录中。
  • 并且可以从浏览器yourdomain/assets/randomhash/themes/bkground.jpg访问?尝试清理缓存,重启浏览器和网络服务器。
  • 如果 css 文件和图像文件位于 /assets/acda762/themes/default/ 并且您设置了 url(bkground.jpg) 可能问题在于 css 样式会重写您的原始 css 类。或者你的 div 不可见。
  • 我创建了简单的示例 artcradle.com/mem/test.html 一切正常,如果 css/image 文件可用,则 css 规则或 js 代码的问题。
猜你喜欢
  • 2012-08-04
  • 2021-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-01
  • 1970-01-01
  • 2020-07-19
  • 1970-01-01
相关资源
最近更新 更多