html - 如何将 Quill 与 express/node 一起使用
问题描述
我无法让 Quill 编辑器出现。
我有两个 ejs 文件,一个布局和一个 add_new(包括布局)。
布局.ejs
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><%= title %> </title>
<link rel="stylesheet" href="/css/normalize.css">
<link rel="stylesheet" href="/css/skeleton.css">
<link rel="stylesheet" href="/css/styles.css">
<link href="https://cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet">
</head>
<body>
<header class="interface-header">
<h3 class="interface-title">
<a href="/admin" id="interface-title">
Διαχείρηση
</a>
</h3>
<nav class="interface-nav">
<ul class="interface-navbar-list">
<li class="navbar-item">
<a href="/admin/post/addNew" target="_blank" class="navbar-link button button-primary">
Δημιουργία
</a>
</li>
<li class="navbar-item">
<a href="/" target="_blank" class="navbar-link button">
Ιστοσελίδα
</a>
</li>
<li class="navbar-item">
<a href="/login/logout" class="navbar-link button-danger">
Αποσύνδεση
</a>
</li>
</ul>
</nav>
</header>
</body>
</html>
add_new.ejs
<%- include("interface_layout.ejs") %>
<div class="container">
<form action="/admin/posts" method="POST" enctype="multipart/form-data" class="admin-form">
<label for="title">Τίτλος</label>
<input type="text" name="title" id="title" class="u-full-width">
<label for="content">Περιεχόμενο</label>
<textarea name="content" id="content" rows="20" style="display: none;" class="u-full-width"></textarea>
<div id="toolbar"></div>
<div id="editor"><p>hello world</p></div>
<% const choices = ["Συνεντεύξεις", "Θέατρο-Κριτική", "Εικαστικά", "test-ride"] %>
<label>Ετικέτες</label>
<div class="choices">
<% choices.forEach(choice => { %>
<label for="<%= choice %>" class="choice"><%= choice %></label>
<input type="checkbox" id="<%= choice %>" value="<%= choice %>" name="tags" class="switch">
<% }) %>
</div>
<label for="date">Ημερομηνία αρχικής δημοσίευσης</label>
<input type="date" name="publishingDate" i="date">
<label for="image">Εικόνα</label>
<input type="file" name="image" id="image" accept="iamge/gif, image/png, image/jpeg">
<button class="button-primary button" type="submit">Ανέβασμα</button>
</form>
</div>
<script src="https://cdn.quilljs.com/1.3.6/quill.js"></script>
<!-- Initialize Quill editor -->
<script>
var options = {
debug: "info",
modules: {
toolbar: "#toolbar"
},
placeholder: "Compose an epic...",
readOnly: true,
theme: "snow"
}
var container = document.getElementById("editor");
var quill = new Quill(container, options);
</script>
我正在尝试首先使用 cdn 使用 quill。我在我的 layout.ejs 中导入雪主题的 css,并在 add_new.ejs 的末尾导入 quill,然后使用脚本标签对其进行初始化。我无法让它出现。
我的控制台给了我这个:
内容安全策略:该页面的设置阻止了在https://cdn.quilljs.com/1.3.6/quill.js(“script-src ”)上加载资源。
我还尝试在我的 routes.js 中使用“const Quill = require("quill")" 并将编辑器作为变量传递给我的视图,但我明白了。
var elem = document.createElement('div'); ^
ReferenceError:文档未在对象中定义。(/node_modules/quill/dist/quill.js:7661:12)
我在一个普通的 index.html 文件和一个带有一个 ejs 文件的基本 express 项目上尝试了快速启动方法(在 quill 的网站上),并且 quill 两次都工作。我怀疑包含/模板有问题?
解决方案
查看浏览器控制台时出现错误,您需要将 highlight.min.js 文件放在 quill.js 前面。最好在本地下载
<link href="/css/quill_editor/quill.snow.css" rel="stylesheet">
<script src="/js/quill_editor/highlight.min.js"></script>
<script src="/js/quill_editor/quill.js"></script>
推荐阅读
- h2o - h2o-bindings和h2o-genmodel有什么关系
- python - Moving files to multiple destination
- git - 我是否总是需要在原点和分支之间放置 / 以进行 git 操作?
- r - 使用 ggplot2 (stat = summary) 中的 geom_line 会出错?
- autodesk-forge - Forge 中选择的透明亮点
- firebase - Does Firestore charge Cloud Function Get reads per retrieved documents?
- javascript - 初始化空的 JQuery 数据表并向其添加项目
- php - 如何调试和记录 PHP OPcache 问题
- angular - How to verify ngCopy method call in angular 6 unit test
- sorting - Yii2 过滤具有多重关系的数据