我正在尝试将外部 HTML 文件的内容加载到我当前的 HTML 模板中。
我遇到的问题是我想要加载的内容不是本地的,也不是位于 URL 上。该文件位于中央存储目录中,我可以在连接到 VPN 时访问该目录。换句话说,如果我的所有本地文件都在 /Users/username/...
中,那么该文件位于 /central_directory/absolute/path/to/file.html
>.
我可以从终端或 file:///central_directory/absolute/path/to/file 访问位于
从我的浏览器中。/central_directory/absolute/path/to/file.html
的文件.html
但是,当我尝试使用 jQuery .load()
函数加载文件时,我收到 404 未找到错误:
Not Found: /central_directory/absolute/path/to/file.html
[15/Jul/2018 19:04:22] "GET /central_directory/absolute/path/to/file.html HTTP/1.1" 404 2257
我的猜测是它没有在正确的位置查找文件(例如,它正在查找
http://mywebsite/central_directory/absolute/path/to/file.html
),但我不知道这是否是一个准确的猜测,也不知道如何测试。
代码:
这是 jQuery 脚本,位于我当前模板的 head
中:
<script>
$(function(){
var filename = "file:///central_directory/absolute/path/to/file.html"
$("#includedContent").load(filename);
});
</script>
以及模板中的 HTML:
<div id="includedContent"></div>
很简单,对吧?
我也尝试过其他语法,也出现了相同的 404 错误。
最佳答案
问题是 .load()
需要 HTTP 连接(因此 GET
或 POST
请求) 对于 JavaScript。
这是幸运的结果,因为您无法像导航到浏览器或终端中的 file://
路径一样加载 javascript 资源(“幸运”是因为它阻止任何人访问您计算机上的任何文件)。
解决这个问题的唯一真正方法是通过网络服务器将本地文件代理到您的浏览器(因此您需要控制服务器实现)。如果您有现有的 Web 服务器堆栈(例如 PHP 、 Node.js 、 Ruby 等),您很可能可以这样做,但这最终取决于它是什么。
关于javascript - 使用 jQuery 从绝对路径的外部文件加载 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51353302/