Я пытаюсь расширить keystonejs cms, используя Node и pug. По сути, я хочу добавить возможность добавлять описание для каждого загружаемого мной изображения. В настоящее время я правильно храню изображения в базе данных Монго. Однако по какой-то причине я не могу получить изображения для правильного отображения или для отображения названия данных. Как показано ниже, идентификатор изображения подбирается, но без кубиков. Загрузка изображений работает, и изображения хранятся правильно, поэтому я думаю, что это проблема с тем, как я называю src изображения в файле pug.
У меня есть модель галереи, и я называю связь с моделью изображения
var keystone = require('keystone'),
Types = keystone.Field.Types;
/**
* Gallery Model
* =============
*/
var Gallery = new keystone.List('Gallery', {
map: { name: 'name' },
autokey: { path: 'slug', from: 'name', unique: true }
});
Gallery.add({
name: { type: String, required: true},
published: {type: Types.Select, options: 'yes, no', default: 'no', index: true, emptyOption: false},
publishedDate: { type: Types.Date, index: true, dependsOn: { published: 'yes' } },
description: { type: Types.Textarea, height: 150 },
heroImage: { type: Types.CloudinaryImage },
images : { type: Types.Relationship, ref: 'Image', many: true }
});
Gallery.defaultColumns = 'title, published|20%, publishedDate|20%';
Gallery.register();
Модель изображения, она использует cloudinary, поскольку, похоже, это то, что поддерживает keystone / что я нашел в учебниках, которые работают
var keystone = require('keystone'),
Types = keystone.Field.Types;
/**
* Image Model
* ==================
*/
var Image = new keystone.List('Image', {
map: { name: 'name' },
autokey: { path: 'slug', from: 'name', unique: true }
});
Image.add({
name: { type: String, required: true },
image: { type: Types.CloudinaryImage, autoCleanup: true, required: true, initial: false },
description: { type: Types.Textarea, height: 150 },
});
Image.relationship({ ref: 'Gallery', path: 'heroImage' });
Image.relationship({ ref: 'Gallery', path: 'images' });
Image.register();
Gallery.pug
extends ../layouts/default
block intro
.container
h1 Gallery
block content
.container
if galleries.length
each gallery in galleries
h2= gallery.name
.row.gallery-images
if gallery.heroImage.exists
.col-sm-4.col-md-4.gallery-image: img(src=gallery._.heroImage.limit(680,680)).img-rounded
.col-sm-8.col-md-8: .row
each image in gallery.images
.col-xs-4.col-sm-4.col-md-3.gallery-image: a.example-image-link(href=image data-lightbox="example-set" )
img(src=image date-title=image.name).img-rounded1.exampleimage
else
each image in gallery.images
.col-xs-4.col-sm-4.col-md-3.gallery-image: a.example-image-link(href=gallery.image data-lightbox="example-set" date-title=description)
img(src=images.image).img-rounded1.exampleimage
else
h3.text-muted There are no image galleries yet.
В «живом» html
<div class="col-xs-4 col-sm-4 col-md-3 gallery-image">
<a class="example-image-link" href="5cc494c821ed5b3770568968" data-lightbox="example-set">
<img class="img-rounded1 exampleimage">
</a>
</div>