使用onlyoffice实现文件预览编辑 + Docker一键部署流程

ONLYOFFICE 是一款功能完备的在线办公套件,提供 Word、Excel、PPT 等常用办公工具,用户仅需通过浏览器即可访问所有 Office 功能。
https://api.onlyoffice.com/zh-CN/docs/docs-api/get-started/frontend-frameworks/vue/

在 Vue3 项目中集成 OnlyOffice Document Server 需完成服务部署、前后端交互、组件封装三大核心步骤,最终实现文件的在线编辑 / 预览功能。

ONLYOFFICE 前端嵌入依赖 后端服务支撑 (前端无法单独运行)

但无需自己开发复杂后端 个人测试使用可以使用docker进行流程化一键部署

项目中后端提供接口支持即可

OnlyOffice 与前端的交互流程:

  1. 前端从业务后端获取文件访问链接、文档密钥和配置参数
  2. 后端与 Document Server 交互,生成编辑会话和 iframe 嵌入地址 前端通过 iframe 嵌入编辑页面加载文件
  3. Document Server 实时回调业务后端处理文件保存

一、Docker 部署 ONLYOFFICE 服务
第一步:配置环境以适应docker

启用适用于 Linux 的 Windows 子系统

检查系统虚拟化是否开启

以管理员身份运行命令窗口

WSL 是 Windows Subsystem for Linux 的缩写,中文名为适用于 Linux 的 Windows 子系统,是微软为 Windows 10/11 系统推出的一项功能,它允许用户在 Windows 系统中原生运行 Linux 环境(包括 Linux 命令行工具、应用程序、服务等),而无需安装虚拟机或双系统。

执行命令:

wsl --install

wsl --version

安装过程中需设置用户名和密码 自定义即可

第二步:安装 Docker(前置工具)

下载 Docker Desktop(Windows/macOS)或 Docker Engine(Linux)

  • 验证安装:打开终端(Windows 用 PowerShell,macOS/Linux 用终端),输入以下命令,显示版本则安装成功
javascript 复制代码
docker --version

第三步:Docker 部署 ONLYOFFICE Docs 服务

  1. 配置镜像拉取地址

  2. 在powershell 中执行下面命令进行镜像拉取

javascript 复制代码
docker pull onlyoffice/documentserver:latest
  1. 启动容器(首次运行需设置端口)


在 powershell 中执行下方三条命令 注意 windows 系统中去掉sudo 直接执行 sudo后面的命令即可

访问时需将 localhost 替换为本机 IP

二、Vue 项目集成

安装依赖:

javascript 复制代码
npm install --save @onlyoffice/document-editor-vue

这个错误提示("文档安全令牌格式不正确")是 OnlyOffice Document Server 的令牌验证机制触发的,问题根源是前端未正确传递合法的 JWT 令牌,或服务端的令牌验证未关闭

可以关闭前端的令牌校验

javascript 复制代码
//进入容器
docker exec -it **id** bash
//编辑容器配置文件
nano /etc/onlyoffice/documentserver/local.json
//重启容器服务
supervisorctl restart all


在nano编辑器中保存修改的步骤如下:

  1. 按下 Ctrl + O(用于保存文件);
  2. 此时会在底部提示 "File Name to Write: /etc/onlyoffice/documentserver/local.json",直接按Enter键确认保存路径;
  3. 保存完成后,按下 Ctrl + X 退出nano编辑器。

三、配置说明

核心配置项分为 基础配置、文档配置、编辑器配置、界面自定义配置 等类别,以下是常用且关键的配置项

1、核心基础配置

这些是初始化 OnlyOffice 编辑器的必填 / 基础参数:

2、文档配置(document 字段)

用于定义要打开的文档信息:

3、编辑器配置(editorConfig 字段)

控制编辑器的功能、语言、用户信息等:

4、界面自定义配置(editorConfig.customization 字段)

用于调整编辑器的界面显示:

5、事件配置(Vue3 组件中绑定)

在 Vue3 组件中可以监听 OnlyOffice 的事件,实现业务逻辑:

javascript 复制代码
<template>
  <div id="onlyoffice-container" style="width: 100%; height: 800px;"></div>
</template>

<script setup>
import { onMounted } from 'vue';

onMounted(() => {
  const initEditor = () => {
    new window.DocsAPI.DocEditor("onlyoffice-container", {
      // 基础配置
      documentServerUrl: "http://172.31.0.1:9000/",
      documentType: "word",
      type: "desktop",
      width: "100%",
      height: "800px",
      // 文档配置
      document: {
        url: "https://static.onlyoffice.com/assets/docs/samples/demo.docx"
        fileType: "docx",
        key: "doc-key-20251216",
        title: "测试文档.docx",
        permissions: {
          edit: true,
          download: false
        }
      },
      // 编辑器配置
      editorConfig: {
        lang: "zh-CN",
        mode: "edit",
        user: { id: "1", name: "Vue用户" },
        callbackUrl: "http://你的后端/api/onlyoffice/callback",
        customization: {
          forcesave: true,
          toolbar: { hide: ["print"] }
        }
      },
      // 事件监听
      events: {
        onDocumentReady: () => console.log("文档加载完成"),
        onError: (err) => console.error("编辑器错误:", err)
      }
    });
  };

  // 加载 OnlyOffice API 后初始化
  const script = document.createElement("script");
  script.src = "http://localhost:9000/web-apps/apps/api/documents/api.js";
  script.onload = initEditor;
  document.body.appendChild(script);
});
</script>
相关推荐
-大头.2 小时前
Docker实战:构建高性能MySQL主从复制集群(读写分离)
mysql·docker·容器
LuiChun2 小时前
Docker Compose 容器服务查询与文件查看操作指南(Windows Docker Desktop 版)【一】
linux·运维·windows·docker·容器
${王小剑}2 小时前
在离线ubuntu上布置深度学习环境
linux·运维·ubuntu
Java程序之猿3 小时前
Linux使用U盘安装centos及报错You might want to saue “/run/initramfs/rdsosreport.txt“ 处理
linux·运维·服务器
goodlook01233 小时前
安装最新版本docker-26.1.4
运维·docker·容器
❀͜͡傀儡师3 小时前
docker安装部署PostgreSQL带有pgvector扩展向量数据(高维数组)
docker·postgresql·容器·pgvector
CC.GG3 小时前
【Linux】进程概念(五)(虚拟地址空间----建立宏观认知)
java·linux·运维
IT_Octopus4 小时前
Docker 镜像打的包有1.3个G 多阶段构建缩小镜像体积(不算成功)
运维·docker·容器
明洞日记4 小时前
【软考每日一练008】Web 服务器性能测试指标
运维·服务器·操作系统·软考