【问题标题】:Using thickbox with imagekit使用带有 imagekit 的厚盒
【发布时间】:2009-10-23 12:01:53
【问题描述】:

我想使用 jQuery Thickbox 来显示我的图像,但到目前为止,当我单击缩略图时,我得到的只是加载进度条。我已将我的显示设置如下(也许这会有所帮助)

<div class="thumbs">
  {% for p in photos %}
    <a href="{{ p.original_image.url }}" title="{{ p.position.position }}" class="thickbox" rel="gallery-vehicle">
       <img src="{{ p.thumbnail_image.url }}" alt="{{ p.position.position }}" />
    </a>
  {% endfor %}
</div>

上述代码的输出是:

<div class="thumbs"> 
   <a href="/site_media/photos/16766966.jpg" title="Front" class="thickbox" rel="gallery-vehicle"> 
      <img src="/site_media/photos/photos/16766966_thumbnail_image.jpg" alt="Front" /> 
   </a>  
   <a href="/site_media/photos/iPPJ3216_1.jpg" title="Side View" class="thickbox" rel="gallery-vehicle"> 
      <img src="/site_media/photos/photos/iPPJ3216_1_thumbnail_image.jpg" alt="Side View" /> 
    </a>            
   <a href="/site_media/photos/2010-acura-mdx-15.jpg" title="Interior" class="thickbox" rel="gallery-vehicle"> 
       <img src="/site_media/photos/photos/2010-acura-mdx-15_thumbnail_image.jpg" alt="Interior" /> 
    </a>     
    <a href="/site_media/photos/acura04.jpg" title="Dashboard" class="thickbox" rel="gallery-vehicle"> 
        <img src="/site_media/photos/photos/acura04_thumbnail_image.jpg" alt="Dashboard" /> 
     </a> 
 </div>

对于 js 和样式表,我将它们连接起来如下:

<script type="text/javascript" src="/site_media/js/jquery.js"></script>
<script type="text/javascript" src="/site_media/js/thickbox.js"></script>

<link rel="stylesheet" type="text/css" href="/site_media/css/thickbox.css" media="screen" />

【问题讨论】:

  • 如果您将 html 输出添加到您的问题中,它可能会更容易提供帮助。
  • @Alasdair 我已经添加了我的输出
  • 您的静态文件是否正确提供?如果你在浏览器中输入yourdomain. com/site_media/.../acura.jpg,图片会加载吗?
  • 静态文件正在正确提供...让我从 panchicore 尝试下面的答案,然后我会看看是否一切都好...
  • 您可以将浏览器中的 html 保存到磁盘,并将所有指向 css、脚本和图像的链接设置到磁盘上的路径,以查看问题是在您的代码中还是在开发服务器中。

标签: jquery django imagekit django-imagekit


【解决方案1】:

试试

查看:

    return render_to_response('album.html',
                          {'photos': photos,
                          context_instance=RequestContext(request))

在模板中始终使用 URL_MEDIA 路径,在我的经验中,当 img 资源返回错误时,复选框会永远显示“正在加载”。

<div class="thumbs">
  {% for p in photos %}
    <a href="{{ MEDIA_URL }}{{ p.original_image.url }}" title="{{ p.position.position }}"      class="thickbox" rel="gallery-vehicle">
      <img src="{{ p.thumbnail_image.url }}" alt="{{ p.position.position }}" />
    </a>
  {% endfor %}
</div>    

【讨论】:

  • 这仍然给我相同的状态...即使使用 MEDIA_URL 后也没有变化
  • 您在访问 localhost 时看到的内容:/site_media/photos/iPPJ3216_1.jpg ?
  • localhost:/site_media/photos/iPPJ3216_1.jpg 向我展示了指定的照片...它也适用于所有其他人
  • 所以,使用firefox的firebug插件在点击图片链接时观察网络活动并告诉我们你看到了什么。
  • 让我们尝试将shadowbox-js.com library 和 rel="shadowbox" 添加到您的链接中,并告诉我们您看到了什么。用法:shadowbox-js.com/usage.html
【解决方案2】:

如果静态文件正确提供,并且您可以通过浏览器访问/site_media/photos/photos/acura04_thumbnail_image.jpg,则表明问题不在于您的thumbs div 中的代码。我认为 panchicore 的建议不会有帮助。

我之前没有用过thickbox,所以我的下一个问题是根据thickbox website上的说明。

您能否发布用于包含脚本和 css 的代码。应该是这样的

<script type="text/javascript" src="path-to-file/jquery.js"></script>
<script type="text/javascript" src="path-to-file/thickbox.js"></script>

<link rel="stylesheet" href="path-to-file/thickbox.css" type="text/css" 
      media="screen" />

检查您是否可以通过浏览器访问这些路径。如果文件在您的媒体文件夹中,您可以在此处使用 {{MEDIA_URL}}。例如

src="{{MEDIA_URL}}js/jquery.js"

如果这不是问题,那我恐怕我没有想法了。

【讨论】:

  • 即使不指定 {{ MEDIA_URL }},我也可以正常访问脚本和 css...查看我的编辑以了解我是如何做到这一点的
  • 抱歉,我没办法了。如果您的代码在网络服务器上并且您共享 URL,那么我将快速查看它,但目前我想不出任何其他建议。
  • 我希望我可以分享 URL,但我在本地运行代码......我想我必须弄清楚可能是什么问题。
猜你喜欢
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多