私はHippo CMSの初心者です。私はバージョン 10 に取り組んでおり、angularJS サービスを使用して、HippoCms で作成した「バナー」の残りの URL を使用しています。
これは、Hippo の Rest Api Manager を介して作成されたバナーの Rest URL です。
http://localhost:8080/site/stbetrest/Banner?_type=json
リンクを消費したときに得られる応答は次のとおりです。
{
"pageSize": 10,
"total": 3,
"items": [
{
"content": "<![CDATA[\r\n\r\n <p>Banner description</p>\r\n\r\n \r\n]]>",
"title": "Sample banner"
},
{
"content": "<![CDATA[<p>10 Simple Steps to Green Your Office:</p>\n\n<p> </p>\n\n<p>
<img src=\"/site/pagenotfound\" /></p>]]>",
"title": "10 Simple Steps to Green Your Office"
},
{
"content": "<![CDATA[<p>How to Green Your Dorm Room</p>]]>",
"title": "How to Green Your Dorm Room"
}
],
"currentPage": 1,
"totalPages": 1
}
ここでの問題は、Hippo のバナー ドキュメント内で使用した画像が表示されないことです。これらの画像/リンクを取得して、AngularJs で作成されたカルーセルにロードしたいと考えています。上記のバナー応答にも画像を生成する方法を教えてください。
アップデート:
「localhost:8080/cms」を介してアップロードされた画像が表示されますが、応答を介して画像にアクセスすることはできません。
@XmlRootElement(name = "banner")
@XmlAccessorType(XmlAccessType.NONE)
@HippoEssentialsGenerated(internalName = "gogreen:bannerdocument")
@Node(jcrType = "gogreen:bannerdocument")
public class Banner extends BaseDocument {
@XmlElement
@HippoEssentialsGenerated(internalName = "gogreen:title")
public String getTitle() {
return getProperty("gogreen:title");
}
@XmlJavaTypeAdapter(HippoHtmlAdapter.class)
@XmlElement
@HippoEssentialsGenerated(internalName = "gogreen:content")
public HippoHtml getContent() {
return getHippoHtml("gogreen:content");
}
@HippoEssentialsGenerated(internalName = "gogreen:link")
public HippoBean getLink() {
return getLinkedBean("gogreen:link", HippoBean.class);
}
@XmlJavaTypeAdapter(KerkRestAdapter.class)
@XmlElement
@HippoEssentialsGenerated(internalName = "gogreen:image")
public Kerk getImage() {
return getLinkedBean("gogreen:image", Kerk.class);
}
}
私のコンテンツリライターは次のとおりです。
public class RestContentRewriter extends SimpleContentRewriter {
@Override
protected String rewriteBinaryLink(String binaryLinkSrc, Node node, HstRequestContext requestContext, Mount targetMount) {
return super.rewriteBinaryLink(binaryLinkSrc, node, requestContext, requestContext.getMount("site"));
}
そして私のアダプターは:
public class KerkRestAdapter extends XmlAdapter<String, HippoHtml> {
@Override
public HippoHtml unmarshal(String representation) throws Exception {
throw new UnsupportedOperationException("Unmarshalling not implemented.");
}
@Override
public String marshal(HippoHtml html) throws Exception {
if (html == null) {
return null;
}
final HstRequestContext context = RequestContextProvider.get();
//final RestContentRewriter contentRewriter = new RestContentRewriter();
final ContentReWriter<String> contentRewriter = new RestContentRewriter();
final String rewrite = contentRewriter.rewrite(html.getContent(), html.getNode(), context, context.getMount("api"));
return "<![CDATA[" + rewrite + "]]>";
}
}
追加の質問: リライタで使用するマウント ポイントは何ですか? ( 残りのマウント名または gogreen ??)
助けてください !