如何从网站内部下载整个网站



我正在制作一个网站,我想让用户下载整个网站(包括CSS和图像(供他们修改。我知道我可以用下载个人资源

<a href="./resource.extention" download="filename">Click Me</a>

但正如我所说,这只下载一个文件,而我想下载整个网站。

如果它能帮助你理解我的意思:在chrome、IE和Firefox中,你可以按ctrl+s下载整个网站(确保你将其保存为Web page, Complete.

编辑:我知道我可以创建一个.zip文件,它会下载,但这样做需要我每次更改时都更新它,这是我宁愿不做的,因为我可能会做很多更改。

正如我所提到的,最好有一个cron作业或类似的东西,偶尔会为您创建一个包含所有所需静态内容的zip文件。

如果您坚持在客户端使用javascript,请查看JSZip。

您仍然需要找到一种方法来获取要保存的服务器的静态文件列表。例如,您可以创建一个txt文件,每行都是指向网页静态文件的链接。

您必须对该文件进行迭代,并使用$.get来获取其内容。

像这样的东西:

// Get list of files to save (either by GET request or hardcoded)
filesList = ["f1.json /echo/jsonp?name=1", "inner/f2.json /echo/jsonp?name=2"];
function createZip() {
zip = new JSZip();
// make bunch of requests to get files content
var requests = [];
// for scoping the fileName
_then = (fname) => data => ({ fileName: fname, data });
for (var file of filesList) {
[fileName, fileUrl] = file.split(" ");
requests.push($.get(fileUrl).then(_then(fileName)));
}
// When all finished
$.when(...requests).then(function () {
// Add each result to the zip
for (var arg of arguments) {
zip.file(arg.fileName, JSON.stringify(arg.data));
}
// Save
zip.generateAsync({ type: "blob" })
.then(function (blob) {
saveAs(blob, "site.zip");
});
});
}
$("#saver").click(() => {
createZip();
});

JSFiddle

就我个人而言,我不喜欢这种做法。但你喜欢怎么做就怎么做。

最新更新