点CMS Vue SDK
这个 @dotcms/vue SDK是"点"CMS官方Vue 3库. 它赋予了Vue开发者在不时建立强大,可编辑的网站和应用程序的能力,同时全力支持通用视觉编辑器(UVE).
目录
先决条件设置( S)
获取点CMS 环境
我该用哪个SDK版本?
dotCMS SDKs 发布在锁定步骤中,同时发布 dotCMS 本身: 每 @dotcms/* 货包船
地点 完全相同的版本编号 作为点CMS的发布,它是为(例如:点CMS)而建的
26.7.14-1 → @dotcms/[email protected], (中文(简体) ), @dotcms/[email protected],等等).
简单的拇指规则:使用匹配您点CMS实例版本的 SDK 版本.
每次dotCMS发布新版本(反之亦然)时,你不必升级SDK. 大部分的发布都不会改变SDK所依赖的东西,所以一个更老的SDK通常会继续工作 对一个新的点CMS案例,罚款。 但偶尔,释放确实包括一个真正的 打破更改——如果您的 SDK 年龄超过此点, 它会停止正确工作 .
你不需要自己去跟踪它: 你的点CMS实例总是知道最古老的SDK 版本它仍然支持,SDK自动对照它检查自己. 狦琌 使用SDK这个太老了,你会看到一个清晰的警告 在你的控制台上告诉你 升级.
建议: 将您的 SDK 与您的点CMS 实例相同的版本连接, 并且只接通 当您升级了点CMS, 或者当控制台告诉你.
在LTS发布? LTS发行版目前没有获得自己匹配的SDK版本. 在解决之前,请使用所出版的SDK版本,以便最接近定期发布 或者在你的LTS版本之前.
想要更多关于dotCMS发布和支持窗口如何工作的背景吗? 见 发布和支持生命周期( S)。 。 。 .
环境设置
用于生产:
测试和开发:
- 🧑🏻💻 dotCMS 演示站点 - 适合试出SDK
- 📘 学习如何使用演示网站
- * 只读访问,理想的概念证明
促进地方发展:
- 🐳 Docker 设置指南
- 💻 本地安装指南
配置通用视觉编辑器 App
关于设置世界视觉编辑器的分步指南 请检查我们 容易遵循的指令 马上就开始!
当配置UVE应用时,将其指向您Vue应用的URL(例如. http://localhost:5173:
{ "config": [{ "pattern": "(.*)", "url": "http://localhost:5173" }] }
创建点CMS API 密钥
[TIP] 请确定您的 API Token 对页面、 文件夹、 资产和内容有只读权限 。 使用最少许可的密钥遵循安全最佳做法.
这种集成需要包含只读权限的 API 密钥用于安全最佳做法 :
- 转到 dotCMS 管理员面板。 。 。 .
- 点击 系统 > 翻译: 用户。 。 。 .
- 选择要创建 API 密钥的用户.
- 转到 API 访问密钥 生成新密钥.
关于详细说明,请参见: dotCMS API 文档 - 只读符号。 。 。 .
安装
npm install @dotcms/vue@latest
要求数 第3.4条+ (被宣布为同伴依赖). 安装也带来
@tinymce/tinymce-vue (授权内置文本编辑于 DotCMSEditableText, (中文(简体) ),
但你需要自己安装这些软件包:
@dotcms/uve: 启用与该对话框的互动 通用视觉编辑器 用于实时内容编辑@dotcms/client: 提供获取和管理dotCMS数据的核心客户端功能@dotcms/types: 整个API中所使用的类型脚本定义
npm install @dotcms/uve @dotcms/client @dotcms/types
npm 7+ 和 pnpm 将这些自动安装为对等依赖性
@dotcms/vue。 。 。 . Yarn Classic (1. x) 和 npm under v7 下没有 他们只印一个警告 如果缺少一个, 因此,对于这些软件包管理器,您必须如上所示明确添加.
dotCMS 客户端配置
启动时安装一次点CMS Vue插件 。 它构建客户端并提供
整个应用,所以组件取回它 useDotCMSClient() 换成
输入模块级单子的相模
provideDotCMSClient。 。 。 .
// main.ts
import { createApp } from 'vue';
import { createDotCMSVue } from '@dotcms/vue';
import App from './App.vue';
const app = createApp(App);
app.use(
createDotCMSVue({
dotcmsUrl: import.meta.env.VITE_DOTCMS_HOST,
authToken: import.meta.env.VITE_DOTCMS_AUTH_TOKEN, // Optional for public content
siteId: import.meta.env.VITE_DOTCMS_SITE_ID, // Optional site identifier/name
requestOptions: {
// The UVE needs fresh data so in-context edits are reflected immediately.
cache: 'no-cache'
}
})
);
app.mount('#app');
然后,在任何组件中:
<script setup lang="ts">
import { useDotCMSClient } from '@dotcms/vue';
const client = useDotCMSClient();
const { pageAsset } = await client.page.get('/');
</script>
在组件之外使用客户端? 代码在 a 之前/ 之外运行 组件
setup——例如Vue路由器的页面加载器——不能调用useDotCMSClient()并读取插件.client数字 :export const dotCMSVue = createDotCMSVue({ ...config }); export const dotCMSClient = dotCMSVue.client; // same instance the plugin provides
如果你喜欢自己管理客户, createDotCMSClient 从
@dotcms/client 仍然可用,并且与SDK的所有组件一起工作
和可堆积物——插件是一种方便,而不是要求.
import { createDotCMSClient } from '@dotcms/client';
export const dotCMSClient = createDotCMSClient({
dotcmsUrl: import.meta.env.VITE_DOTCMS_HOST,
authToken: import.meta.env.VITE_DOTCMS_AUTH_TOKEN,
siteId: import.meta.env.VITE_DOTCMS_SITE_ID,
requestOptions: { cache: 'no-cache' }
});
静态资产的代理配置
配置一个代理以杠杆作用强大的点CMS图像 API,允许您调整大小并高效服务优化的图像. 这提高了应用性能并改进了用户体验.
1. 配置维特
// vite.config.ts
import { defineConfig } from 'vite';
export default defineConfig({
server: {
proxy: {
'/dA': {
target: 'https://your-dotcms-instance.com',
changeOrigin: true
}
}
}
});
更多地了解 Vite 配置 这里。 。 。 .
2. 组件的使用
一旦配置, 您组件中的图像 URL 将自动被代理到您的点CMS 实例 :
更多关于 在 dotCMS 中的图像调整大小和处理。 。 。 .
<script setup lang="ts">
import type { DotCMSBasicContentlet } from '@dotcms/types';
defineProps<{ contentlet: DotCMSBasicContentlet }>();
</script>
<template>
<img :src="`/dA/${contentlet.inode}`" :alt="contentlet.title" />
</template>
快速启动: 将一个页面渲染为 dotCMS
以下示例显示如何在您 Vue 应用程序中快速设置一个基本的 dotCMS 页面渲染器 。 它表明如何:
- 获取一个 DotCMS 页面并将其渲染为
DotCMSLayoutBody - 将内容类型映射到自己的 Vue 组件
- 将页面保留在通用视觉编辑器内可编辑和实时更新
因为一个 Vue 相容性必须被称为同步 setup从渲染中获取的推荐模式分割:a 获取器 装入页面,然后挂载 渲染器 接收已解析页面和呼叫的孩子 useEditableDotCMSPage。 。 。 .
<!-- PageView.vue — fetches the page, then mounts the renderer -->
<script setup lang="ts">
import { shallowRef, onMounted } from 'vue';
import PageRenderer from './PageRenderer.vue';
import { dotCMSClient } from './dotCMSClient';
// shallowRef keeps the response a plain object (see toPlain / reactivity note below).
const pageResponse = shallowRef<Awaited<ReturnType<typeof dotCMSClient.page.get>> | null>(null);
onMounted(async () => {
pageResponse.value = await dotCMSClient.page.get('/');
});
</script>
<template>
<PageRenderer v-if="pageResponse" :page-response="pageResponse" />
</template>
<!-- PageRenderer.vue — renders the resolved page -->
<script setup lang="ts">
import { DotCMSLayoutBody, useEditableDotCMSPage } from '@dotcms/vue';
import { computed } from 'vue';
import Blog from './content-types/Blog.vue';
import Product from './content-types/Product.vue';
const props = defineProps<{ pageResponse: unknown }>();
const pageComponents = {
Blog,
Product
};
// Returns a reactive ref that live-updates while editing in the UVE.
const page = useEditableDotCMSPage(props.pageResponse as never);
const pageAsset = computed(() => page.value?.pageAsset);
</script>
<template>
<DotCMSLayoutBody v-if="pageAsset" :page="pageAsset" :components="pageComponents" />
</template>
示例项目
想快点开始吗? 我们 Vue.js 启动项目 是完美的发射板。 此 Vite + TypeScript + Tailwind 模板显示您需要的一切 :
QQ 获取和渲染带有最佳做法的 DotCMS 页面 将组件映射到不同内容类型 列出有搜索功能的页面 与块编辑器的详细页面 * 图像和资产优化,以提高业绩 通过通用视觉编辑器(UVE)进行无缝编辑 Vue Constitution API + 反应活性更新
SDK 参考
所有部件、可堆肥和公用事业均从下列来源进口: @dotcms/vue。 。 。 .
创建 DotCMSVue / 使用 DotCMS 客户端
createDotCMSVue(config) 返回用于构建点CMS客户端的 Vue 插件
提供全应用. useDotCMSClient() 从任何
组件。 见 dotCMS 客户端配置 页:1
全部设置.
import { createDotCMSVue } from '@dotcms/vue';
const plugin = createDotCMSVue({ dotcmsUrl, authToken /* …DotCMSClientConfig */ });
app.use(plugin);
| 导出 | 签署 | 说明 |
|---|---|---|
createDotCMSVue(config) | (config: DotCMSClientConfig) => DotCMSVuePlugin | Vue 插件用于 app.use()。 。 。 . config 被 createDotCMSClient。 。 。 . |
useDotCMSClient() | () => DotCMSClient | 返回所提供的客户端 。 如果插件没有安装则丢出 。 进去吧 setup。 。 。 . |
DotCMSVuePlugin.client | DotCMSClient | 创建的客户端实例,用于外部组件(如路由器加载器). |
点数CMSLayoutBody
DotCMSLayoutBody 使一个dotCMS页面的布局(行) ~列 ~ 容器 → 内容片,将每个内容片发送到映射的组件. 它支持生产和发展模式.
| Prop | 类型 | 需求 | 默认 | 说明 |
|---|---|---|---|---|
page | DotCMSPageAsset | ✅ | - 说吧 | 包含要渲染的布局的页面资产 |
components | Record<string, Component> | ✅ | {} | 内容类型- Vue 组件地图 |
mode | DotCMSPageRendererMode | ❌ | 'production' | 渲染模式(“生产”或“开发”) |
使用量
<script setup lang="ts">
import { DotCMSLayoutBody } from '@dotcms/vue';
import type { DotCMSPageAsset } from '@dotcms/types';
import Blog from './content-types/Blog.vue';
import Product from './content-types/Product.vue';
defineProps<{ page: DotCMSPageAsset }>();
const components = {
Blog,
Product
};
</script>
<template>
<DotCMSLayoutBody :page="page" :components="components" />
</template>
布局正文模式
production: 性能优化模式,只使内容带有明确映射的组件,使未映射的内容空出.development: 调试方便模式,使未映射的内容类型倒置,并显示空容器和缺失映射的可视化指标. UVE 内部自动检测到编辑模式 - 编辑data-dot-*元数据总是不计其数mode道具 (英语).
构成部分绘图
这个 components prop将内容类型可变名称映射到Vue组件. 每个内容的字段被传递到匹配的组件作为道具.
const components = {
Blog: MyBlogCard,
Product: MyProductCard,
CustomNoComponent: MyFallback // optional: rendered for unmapped types in dev mode
};
- 键( 如 .
Blog, (中文(简体) ),Product: 必须符合您的 内容类型可变名称 在点数据管理系统中(它们具有大小写敏感性——例如).webPageContent, (中文(简体) ),calendarEvent) (中文(简体) ). - 值:使该内容类型具有Vue组件。 声明您使用的字段的打入道具界面 – do 没有 散开全部
DotCMSBasicContentlet键入组件,因为 Vue 运行时验证每个已声明的道具和点CMS 船载一些字段(例如.language, (中文(简体) ),modDate),类型与defs类型不同. - 特别节目
CustomNoComponent键是当不存在映射时产生的倒计时.
[TIP] 总是使用从 dotCMS 得到的确切内容类型可变名称作为密钥. 您可以在您 dotCMS 管理面板的内容类型部分找到它.
每个内容槽
除了按内容类型映射外,您还可以覆盖一个 具体 内容由
联合国 identifier 使用命名槽 : #contentlet-<identifier>。当存在时,
时空档代替映射的组件——反应的Vue模拟
SDK的车 slots 道具,用于一次性自定义标记或预发节点.
内容被曝光为插槽范围道具.
<template>
<DotCMSLayoutBody :page="page" :components="components">
<!-- Renders instead of the Blog component for this one contentlet -->
<template #contentlet-a1b2c3d4="{ contentlet }">
<FeaturedBlog :blog="contentlet" />
</template>
</DotCMSLayoutBody>
</template>
没有相配槽的内容返回到 components 照常绘制地图.
DotCMSE可变文本
DotCMSEditableText 允许对 dotCMS 中的单个文本字段进行内置编辑。 在编辑模式下的 UVE 中, 它会挂载一个 TinyMCE 编辑器; 在其它任何地方它都会使字段的当前值 .
| Prop | 类型 | 需求 | 默认 | 说明 |
|---|---|---|---|---|
contentlet | T extends DotCMSBasicContentlet | ✅ | - 说吧 | 包含可编辑字段的内容夹 |
fieldName | keyof T | ✅ | - 说吧 | 要编辑的字段名称( 必须是内容段的有效密钥) |
mode | 'plain' | 'minimal' | 'full' | ❌ | 'plain' | TinyMCE 工具栏预设 . full 启用完整风格的泡泡菜单. |
format | 'text' | 'html' | ❌ | 'text' | text 使 HTML 成为纯文本; html 解析 HTML 标记 |
使用量
<script setup lang="ts">
import { DotCMSEditableText } from '@dotcms/vue';
import type { DotCMSBasicContentlet } from '@dotcms/types';
const props = defineProps<{ contentlet: DotCMSBasicContentlet }>();
</script>
<template>
<div class="banner">
<img :src="`/dA/${contentlet.inode}`" :alt="contentlet.title" />
<h2>
<DotCMSEditableText :contentlet="contentlet" field-name="title" />
</h2>
</div>
</template>
编辑器集成
- 检测 UVE 编辑模式并允许内置 TinyMCE 编辑 .
- 将编辑的内容以模糊的方式发送回编辑器,而不打开全部内容对话框 .
- TinyMCE 脚本是从您的 DotCMS 实例中装入的(
dotCMSHost因此不需要额外的TinyMCE安装.
DotCMSBlock 编辑器
DotCMSBlockEditorRenderer 调制 块编辑器 内容来自dotCMS,支持自定义块渲染器.
| Prop | 类型 | 需求 | 默认 | 说明 |
|---|---|---|---|---|
blocks | BlockEditorNode | ✅ | - 说吧 | 要渲染的块编辑器字段值 |
customRenderers | CustomRenderer | ❌ | - 说吧 | 自定义 特定块类型/内容类型的 Vue 组件 |
className | string | ❌ | - 说吧 | 适用于集装箱的CSS类别 |
style | CSSProperties | ❌ | - 说吧 | 容器的内嵌样式 |
isDevMode | boolean | ❌ | false | 何时 true,显示无效/未知块的可见消息 |
className编号 :style对本地class编号 :style数字 : 页:1className财务报告和审定财务报表style道具反射回放SDK,所以相同的代码形状可以跨出框架. 这个 组件使两个根元素之一(错误框或内容) 因此 Vue 的自动属性掉入 没有 适用——a 本地语言class="prose"在标签上无法到达容器。 使用className财务报告和审定财务报表style样式容器的道具 :<DotCMSBlockEditorRenderer :blocks="contentlet.body" class-name="prose max-w-none" :style="{ marginTop: '1rem' }" />
使用量
自定义渲染器是接收块的Vue组件 node prop和违约时提供的儿童 <slot />。 。 。 .
<!-- CustomHeading.vue -->
<script setup lang="ts">
import type { CustomRendererProps } from '@dotcms/vue';
defineProps<CustomRendererProps>();
</script>
<template>
<h1 class="my-heading"><slot /></h1>
</template>
<!-- DetailPage.vue -->
<script setup lang="ts">
import { DotCMSBlockEditorRenderer, type CustomRenderer } from '@dotcms/vue';
import type { DotCMSBasicContentlet } from '@dotcms/types';
import CustomHeading from './CustomHeading.vue';
const props = defineProps<{ contentlet: DotCMSBasicContentlet }>();
const customRenderers: CustomRenderer = {
heading: CustomHeading
};
</script>
<template>
<DotCMSBlockEditorRenderer
:blocks="contentlet.myBlockEditorField"
:custom-renderers="customRenderers" />
</template>
建议
- 不应与
DotCMSEditableText在同一个领域. - 注意CSS级联会影响你区块的外观和感觉.
- 仅与 块编辑器字段。用于其他文本字段,使用
DotCMSEditableText。 。 。 .
DotCMSShow 游戏
DotCMSShow 有条件地使其基于当前UVE模式的槽内容——对编辑或重排按钮等仅供编辑者使用.
| Prop | 类型 | 需求 | 默认 | 说明 |
|---|---|---|---|---|
when | UVE_MODE | ❌ | UVE_MODE.EDIT | 显示槽内容的 UVE 模式 |
使用量
<script setup lang="ts">
import { DotCMSShow } from '@dotcms/vue';
import { UVE_MODE } from '@dotcms/types';
</script>
<template>
<DotCMSShow :when="UVE_MODE.EDIT">
<button>Edit</button>
</DotCMSShow>
</template>
了解更多关于 UVE_MODE 语句 dotCMS UVE 文档。 。 。 .
使用 EdiableDotCMSPage 软件
useEditableDotCMSPage 将一页线接入通用视觉编辑器,并返回一个作为编辑器进行修改的活化回放. 在UVE之外,这是一个通过——返回的裁判只是持有最初的反应.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
pageResponse | DotCMSComposedPageResponse | ✅ | 页面响应来自 client.page.get() |
回返 (单位:千美元) Ref<DotCMSComposedPageResponse> ——准入 .value.pageAsset 财务报告和审定财务报表 .value.content。 。 。 .
当你使用可堆肥时,它:
- 以您的页面数据初始化 UVE
- 保持编辑器同步导航
- 在编辑内容、块被添加/删除、布局变化或组件被移动时,订阅新页面的内容更改和互换
- 清理所有卸载的听众
使用量
<script setup lang="ts">
import { DotCMSLayoutBody, useEditableDotCMSPage } from '@dotcms/vue';
import { computed } from 'vue';
const props = defineProps<{ pageResponse: unknown }>();
const page = useEditableDotCMSPage(props.pageResponse as never);
const pageAsset = computed(() => page.value?.pageAsset);
const components = {
/* content-type → component map */
};
</script>
<template>
<DotCMSLayoutBody v-if="pageAsset" :page="pageAsset" :components="components" />
</template>
[大 将页面响应存储在
shallowRef(不是深处)ref) (中文(简体) ). 一个深ref将整个页面以被动代理方式包裹, UVE 无法做到postMessage给编辑( e)DataCloneError) (中文(简体) ). 见toPlain。 。 。 .
何时使用 DotCMSSshow
useDotCMSShowWhen 返回当前 UVE 模式是否匹配的反应布尔 -- -- 用于模板外基于模式的逻辑.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
when | UVE_MODE | ✅ | UVE 模式以查看 |
使用量
<script setup lang="ts">
import { useDotCMSShowWhen } from '@dotcms/vue';
import { UVE_MODE } from '@dotcms/types';
const isEditMode = useDotCMSShowWhen(UVE_MODE.EDIT); // Readonly<Ref<boolean>>
</script>
<template>
<button v-if="isEditMode">Edit</button>
</template>
创建 DotCMSimage 记录器
createDotCMSImageLoader(dotcmsUrl?) 返回通过 dotCMS 图像 API(即 /dA/ 路由,它处理调整大小和优化。 这是Angular的Vue模拟 provideDotCMSImageLoader -Vue没有 IMAGE_LOADER 符号,所以您直接调用返回的函数.
绝对 http(s)://… URL的返回没有改变,因此将dotCMS资产与外部/库存图像相混合只是起作用了.
| 参数 | 类型 | 需求 | 默认 | 说明 |
|---|---|---|---|---|
dotcmsUrl | string | ❌ | '' | 您的点CMS 实例的基础 URL 。 站点关系 Omit (空) /dA/… 在代理服务器后面. |
返回的装载器是 (src: string, options?) => string时 options 实值 { width?, quality?, languageId? } (单位:千美元)quality 默认为 50, (中文(简体) ), languageId 改为 '1') (中文(简体) ).
import { createDotCMSImageLoader } from '@dotcms/vue';
// Absolute (production)
const image = createDotCMSImageLoader(import.meta.env.VITE_DOTCMS_HOST);
image(contentlet.inode, { width: 800 });
// → https://demo.dotcms.com/dA/<inode>/800w/50q?language_id=1
// Site-relative (dev proxy) — omit the host so the Vite /dA proxy handles it
const proxied = createDotCMSImageLoader();
proxied(contentlet.inode, { width: 800 }); // → /dA/<inode>/800w/50q?language_id=1
<script setup lang="ts">
import { createDotCMSImageLoader } from '@dotcms/vue';
import type { DotCMSBasicContentlet } from '@dotcms/types';
const props = defineProps<{ contentlet: DotCMSBasicContentlet }>();
const image = createDotCMSImageLoader(import.meta.env.VITE_DOTCMS_HOST);
</script>
<template>
<img :src="image(contentlet.inode, { width: 800 })" :alt="contentlet.title" />
</template>
已删除
toPlain 深解将一个Vue反应值(refs /活性代词)包裹入一个平坦的,结构化的-clone-安全对象. 在将被动数据传递给 UVE 编辑器动作之前使用它( NameeditContentlet, (中文(简体) ), enableBlockEditorInline从 @dotcms/uve,通过 postMessage。 。 。 .
<script setup lang="ts">
import { toPlain } from '@dotcms/vue';
import { editContentlet } from '@dotcms/uve';
import type { DotCMSBasicContentlet } from '@dotcms/types';
const props = defineProps<{ contentlet: DotCMSBasicContentlet }>();
const onEdit = () => editContentlet(toPlain(props.contentlet));
</script>
解决问题
共同问题和解决方案
通用视觉编辑器( UVE)
-
UVE 不装入:页面使编辑器工具/覆盖不出现.
- 可能的原因: 不正确的 UVE 应用程序配置; 缺失
useEditableDotCMSPage;该应用程序不在UVE iframe内部运行. - 解决方案: 校验您的 Vue dev 服务器的 UVE 应用程序 URL; 确保页面树被包裹
useEditableDotCMSPage; 确认data-dot-object="contentlet"属性存在于制成的内容中(它们只在编辑模式中出现).
- 可能的原因: 不正确的 UVE 应用程序配置; 缺失
-
DataCloneError: could not be cloned当装入编辑器时.- 原因: Vue 反应式代理服务器通过
postMessage。 。 。 . - 解决方案: 将页面响应存储在
shallowRef没有深处ref; 使用toPlain在使用被动数据调用 UVE 编辑器动作之前.
- 原因: Vue 反应式代理服务器通过
-
内容编辑不更新页面直播.
- 原因: 通常重复 Vue 实例——如果
vuesDK的活性与你的应用不同 确保单一vue已安装.
- 原因: 通常重复 Vue 实例——如果
缺少内容
-
不渲染的组件: 显示内容的空格.
- 解决方案:检查
components地图注册; 校验内容类型变量名称精确匹配( 区分大小写); 使用mode="development"详细记录.
- 解决方案:检查
-
推荐验证警告 (例如:. 无效道具: Prop "modDate" 类型检查失败) (中文(简体) ).
- 原因:一个内容类型的组件通过扩展完整内容类型来宣告道具;dotCMS将一些系统字段与def不同类型.
- 解决方案: 只声明您组件读取的特定字段.
开发设置
-
npm install失败:清除 npm 缓存(npm cache clean --force),删除node_modules,然后重新安装;验证您的节点.js版本. -
丢失导入的运行时间错误:检查所有 SDK 进口来自
@dotcms/vue,以及同伴的依赖关系(vue, (中文(简体) ),@dotcms/client, (中文(简体) ),@dotcms/uve, (中文(简体) ),@dotcms/types已安装.
调试提示
-
启用开发模式
<DotCMSLayoutBody :page="pageAsset" :components="components" mode="development" />这显示了详细的信息, 使未映射组件背出, 并突出显示空容器 .
-
检查浏览器控制台和网络标签 对于错误,请注意401/403(自动)答复.
-
检查DOM 在UVE iframe内——内容应携带
data-dot-object="contentlet"集装箱data-dot-object="container"在编辑模式中.
还有什么问题吗?
如果你在尝试这些解决方案后还遇到问题:
支助
我们提供多个渠道来寻求帮助 与点CMS Vue SDK:
- GitHub 问题: 对于错误报告和特性请求,请 打开一个问题。 。 。 .
- 社区论坛: 加入我们 社区讨论。 。 。 .
- 企业支助:企业客户可通过 dotCMS 支持门户。 。 。 .
在报告问题时,请包括:
- 您使用的 SDK 版本
- Vue 版本
- 最小复制步骤
- 预期与实际行为
捐款
GitHub 拖取请求是向dotCMS提供代码的首选方法. 欢迎大家为"DotCMS Vue SDK"捐款! 如果你愿意,请:
- 叉子存储器 点/核心
- 创建特性分支( E)
git checkout -b feature/amazing-feature(中文(简体) ) - 提交更改( E)
git commit -m 'Add some amazing feature'(中文(简体) ) - 推向分行(
git push origin feature/amazing-feature(中文(简体) ) - 打开拉请求
请确保您的代码遵循现有的样式并包含适当的测试 .
许可证发放
点CMS 可在 业务来源许可证1.1(BSL) 或商业执照.
在BSL下,DotCMS可以免费由个人开发商,小企业或机构在总资金中低于5M美元,也可以由非生产环境下的更大型组织使用. BSL每次发布都会在其发布后四年自动转换为GPL v3. 全文和问题,访问 dotcms.com/bsl (英语) 财务报告和审定财务报表 dotcms.com/bsl-faq (英语)。 。 。 .
大型组织的生产用途,以及管理下的云、服务级协议、支助和企业能力,均根据点集管理系统的商业许可证提供。 关于商业计划、特点和支助选项的详情,见 dotcms.com/定价。 。 。 .