Lightbox2破碎的图像显示在每个页面rails应用程序

时间:2013-01-06 20:59:18

标签: ruby-on-rails asset-pipeline lightbox2

我整个星期都遇到过这个问题,我尝试过的一切都没有用,我甚至不确定它为什么存在。 (这有点是this question I posted的后续行动。

我将lightbox2 js和css文件添加到我的rails 3.2.8项目中。

我目前在我的本地环境中的每个页面上都会收到这些错误(即使我在调用中没有调用lightbox的页面) -

Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:3000/assets/images/close.png

Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:3000/assets/images/laoding.gif

每页都会显示损坏的图像指示符。

enter image description here

我将路径更改硬编码为lightbox.js以正确检索上述图像,并且在使用灯箱时它们应该正常工作。

  LightboxOptions = (function() {

    function LightboxOptions() {
      + this.fileLoadingImage = '/assets/loading.gif';
      + this.fileCloseImage = '/assets/close.png';
      - this.fileLoadingImage = 'images/loading.gif';
      - this.fileCloseImage = 'images/close.png';
      this.resizeDuration = 700;
      this.fadeDuration = 500;
      this.labelImage = "Image";
      this.labelOf = "of";
    }

当我能够清楚地看到在我的本地环境中工作的图像时,我不明白为什么会出现这些错误。另一个奇怪的事情是lightbox仍在工作,而不必在application.js和application.css

中要求它

以下是我的术语 -

的输出
Started GET "/assets/images/loading.gif" for 127.0.0.1 at 2013-01-06 12:36:31 -0800
Served asset /images/loading.gif - 404 Not Found (11ms)
ActionController::RoutingError (No route matches [GET] "/assets/images/loading.gif"):

并且关闭相同(但是给出截图明显出现)

enter image description here

的application.js

//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require jquery.ui.datepicker
//= require justgage
//= require raphael.min
//= require jquery.purr
//= require best_in_place
//= require_tree .

(我不应该在上面使用灯箱吗?)

 *= require jquery.ui.datepicker
 *= require_self
 *= require bootstrap
 *= require_tree .
 */

(我不应该在上面使用灯箱吗?)

视图中使用的灯箱。

 <div class="row does_description_whole">
    <div class="row offset3">
      <div class="span3 does_description_text">
        <h4>Joe Popular</h4>
        <p>Lorem ipsum hipster bacon.</p>
      </div>
      <div class="span3">
        <a href="https://lh6.googleusercontent.com/picture/joe_does.png" rel="lightbox"><img src="https://lh3.googleusercontent.com/pciture/glance_town.png" class="does_pictures"></a>
      </div>
    </div>  
  </div

为适当的路径编辑了lightbox.js

我不明白为什么1.每个页面GET请求(错误)图像,即使它们正在适当地显示和2.为什么我不需要在application.js和application.css中需要灯箱文件

感谢您的关注并了解一下。

1 个答案:

答案 0 :(得分:0)

如果您要使用资产管道,您应该引用这样的图像:

= (link_to image_tag(pic.image_url(:thumb)), pic.image_url, :rel => "group2", :class => "lightbox") if pic.image?

您可以考虑使用link_to助手而不是a href:rel =>指定要浏览的图像源。

通常,对图像的引用采用以下格式:

url('yourpng.png')

关于为什么不应将灯箱包含在清单中:您应该在.js.css清单中加入灯箱。

解决:在一天结束时,它就像rm -rf public/assets一样简单(@Tmacram与我们分享了正确的解决方案)。