【发布时间】:2017-02-28 01:52:36
【问题描述】:
背景
我想停止使用Latex 为我的应用程序创建文档和自动报告,我更愿意使用html+css,我以后可能会使用wkhtml2pdf 转换为pdf,以便添加封面页、表格内容、页眉、页脚,全部在 A4 分隔页中。
wkhtml2pdf 是轻量级 exe,支持用于高级文档预处理/格式化的脚本/css。所以,到目前为止,一切都很好,看来html+css 是我替换Latex 的最佳选择......
问题
为了便于维护,而不是将所有文档内容放在一个文件中,我最初考虑将我的本地文件组织成这样:
doc/index.html
docs/includes/introduction.html
docs/includes/part1.html
docs/includes/part2.html
docs/resources/mystyle.css
docs/resources/jquery-3.1.1.min.js
并编写主要文档index.html如下:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
<script src="./resources/jquery-3.1.1.min.js"></script>
<script>
// When document is ready, feed divs with real content
$(document).ready(function()
{
$('#Introduction').load('./resources/introduction.html');
$('#Part1').load('./resources/part1.html');
$('#Part2').load('./resources/part2.html');
});
</script>
</head>
<body>
<div id="Introduction"></div>
<div id="Part1"></div>
<div id="Part2"></div>
</body>
</html>
不幸的是,我收到了XMLHttpRequest 错误,基本上告诉它无法加载文件,因为cross-origin 仅支持 http、data、chrome、https 等...协议 (?? 即使我所有的文件都是本地的,main.html 也是从本地文件系统启动的——所以都是同源——??)。
我尝试了许多解决方法(link rel=import、w3IncludeHTML、使用iframe 并尝试阅读内容)它们都属于cross-origin 问题。
问题
是否有一种easy/light 解决方案来合并local main.html 文件中的所有local html 片段(即没有外部grep或额外的工具,只是基本的 html+javascript)?
NB1:我知道我可以在 chrome 浏览器中更改标志以允许cross-origin,但我想避免这种情况。首先,出于安全原因。其次,因为在将文件发送到wkhtml2pdf 转换器时我不能这样做。第三,因为不容易按原样提供文档并说“只需单击index.html 在网络浏览器中打开文档”。
NB2:文档片段很可能只是 <section>、<p>、<img>、<table> 元素都合并在 main.html 的主体中,用于在一个地方管理 css 格式和其他内容。
【问题讨论】:
-
问题解决了吗?为什么不能设置本地 http 服务器?以 node.js 为例,它只需要几行代码。
-
@Supersharp 我还没有找到解决方案,所以我将所有内容放在一个 html 文件中 (stackoverflow.com/q/40497481/684399)。我不会不使用本地 http 服务器的原因是我正在尝试创建自动报告(全部在 html+css+javascript 中),以便可以轻松查看它们并最终从任何客户的网络浏览器(太复杂,无法要求他们安装本地服务器来查看文档/报告)