首页 > 解决方案 > 在 Node.js 项目中包含 Quill 的问题

问题描述

我正在使用 Node.js 和 Express.js 开发一个项目。

我需要使用Quill,我正在尝试从我的node_modules文件夹中包含它。(由于 nginx 的内容安全策略问题,无法从CDN获取)。

所以,我做了什么:

//index.js
app.use(
  express.static(path.join(__dirname, "..", "..", "node_modules", "quill"))
);

//page.ejs
<script type="module" src="/quill.js"></script>

到目前为止,它可以工作,因为它在 DOM 中成功包含node_modules/quill/quill.js ,但是它显示node_modules/ quill 文件夹中的所有其他文件的 404 错误,这些文件是从node_modules/quill/quill.js文件导入的。

例如,这些导入:

//node_modules/quill/quill.js

import Quill from './core';

import { AlignClass, AlignStyle } from './formats/align';
import { DirectionAttribute, DirectionClass, DirectionStyle } from './formats/direction';
import { IndentClass as Indent } from './formats/indent';

import Blockquote from './formats/blockquote';
import Header from './formats/header';
import List, { ListItem } from './formats/list';

import { BackgroundClass, BackgroundStyle } from './formats/background';
import { ColorClass, ColorStyle } from './formats/color';
import { FontClass, FontStyle } from './formats/font';

在浏览器控制台中导致这些错误:

加载资源失败:服务器响应状态为 404(未找到)/formats/align:1

加载资源失败:服务器响应状态为 404(未找到)/formats/direction:1

加载资源失败:服务器响应状态为 404(未找到)/formats/indent:1

加载资源失败:服务器响应状态为 404(未找到)/formats/blockquote:1

加载资源失败:服务器响应状态为 404(未找到)/formats/background:1

加载资源失败:服务器响应状态为 404(未找到)/formats/list:1

加载资源失败:服务器响应状态为 404(未找到)/formats/color:1

...

..

加载资源失败:服务器响应状态为 404 /formats/header:1

我究竟做错了什么?
我愿意接受有关如何包含此库(包括来自他们的 CDN)的任何更改/建议。

谢谢

标签: node.jsexpressquill

解决方案


你可以试试这个方法。只需将 froala 替换为 quill 即可。

app.use('/froalacss',express.static(__dirname+'/node_modules/froala- editor/css/froala_editor.pkgd.min.css'));
app.use('/froalajs',express.static(__dirname+'/node_modules/froala- editor/js/froala_editor.pkgd.min.js'));

推荐阅读