gpt4 book ai didi

java - 玩!框架 2.0 : How to display multiple image?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:53:30 26 4
gpt4 key购买 nike

我需要显示照片库。所以这是我的模板:

@(photos: List[Photo])

@title = {
<bold>Gallery</bold>
}

@main(title,"photo"){
<ul class="thumbnails">
@for(photo <- photos) {
<li class="span3">
<a href="#" class="thumbnail">
<img src="@photo.path" alt="">
</a>
</li>
}
</ul>
}

这是我的 Controller 方法:

public static Result getPhotos() {
return ok(views.html.photo.gallery.render(Photo.get()));
}

这是我的照片 bean :

    @Entity
public class Photo extends Model {

@Id
public Long id;

@Required
public String label;

public String path;

public Photo(String path, String label) {
this.path = path;
this.label = label;
}

private static Finder<Long, Photo> find = new Finder<Long, Photo>(
Long.class, Photo.class);

public static List<Photo> get() {
return find.all();
}

public static Photo get(Long id) {
return find.byId(id);
}

public static void create(Photo photo) {
photo.save();
}

public static void delete(Long id) {
find.ref(id).delete();
}

}

我把照片的绝对路径放在了img节点的src属性中,但是没有用。实现这一目标的最佳方法是什么?

PS:图片位于 Play 应用程序之外。

最佳答案

看看我非常相似的问题:Direct serving files from outside of Play directories structure ,最后我在非常基本的示例中使用了我的第二个建议,它可以显示为:

public static Result serve(String filepath){
// some stuff if required
return ok(new File("/home/user/files/"+filepath));
}

路由(将星号与 *filepath 一起使用以允许内部带有斜杠的字符串):

GET   /files/*filepath    controllers.Application.serve(filepath : String)

查看(photo.path 之前缺少@ 字符并非偶然)

<img src="@routes.Application.serve(photo.path)" alt="@photo.alt" />

编辑:

如果您有任何 HTTP 服务器 并且能够创建指向目录的新子域/别名,那么您当然不需要通过 Controller 提供文件。在这种情况下,您可以将链接存储为 http://pics.domain.tld/holidays_2012/1.jpg 或更好地存储为 holidays_2012/1.jpg(然后在模板中使用子域作为前缀)。

最后你可以设置一些别名即。与 Apache 一起使用您的 domain.tld/* 作为指向 Play 应用程序的指针,并将 domain.tld/pics/* 作为指向某个文件夹的指针

<VirtualHost *:80>
ProxyPreserveHost On
ServerName domain.tld
ProxyPass /pics !
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/

Alias /pics/ /home/someuser/somefolder_with_pics/
<Directory /home/someuser/somefolder_with_pics/>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

在这种情况下,重要的是放置 ProxyPass/pics ! before ProxyPass/http://...

关于java - 玩!框架 2.0 : How to display multiple image?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10882313/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com