html中下载链接的相对路径和绝对路径

发布于 2022-09-12 23:51:06 字数 448 浏览 9 评论 0

我的 centos 服务器上做了最简单的 index.html 用于自己下载文件,代码如下

文件的路径看下图

可以看到访问的 index.html 和第一个 a 标签指向的文件 (NDP...开头的文件)
是在同一个目录下,该 a 标签的 href 中使用了相对路径,测试了点击后可以下载
但是第二个 a 标签的文件所在的路径是

该文件和 index.html 不在一个目录下,我在 index.html 的第二个 a 标签页中使用了两次上级目录再切换到具体的下载目录下,测试后无法正常下载文件,下载来的文件只有1K。
第二个 a 标签的 href 我要怎么写 ?或者有更好的方法?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

身边 2022-09-19 23:51:06

通过相对路径下载上级目录的文件这件事,有可能就是做不到的。
这个要根据你的网站是怎么代理的,也就是你的网站的反向代理服务器(apache,nginx)指向的root位置来定。
首先不谈什么安全性的话题,就以你的那台服务器的文件为例子,
比如说你的域名是www.abc.com,你访问后就到了你的index.html,这说明你的www.abc.com通过代理指向了你的/projfe/material/目录,任何人通过这个域名只有对这个目录内部文件的操作权,这时候相对路径的"../"是越权操作,没有任何效果。
那什么时候相对路径的"../"是有效的呢,比如你把代理服务器指向了根目录/,这时候,你需要通过www.abc.com/projfe/material/来访问你的index.html,你在index.html下就可以通过相对路径../../来访问其他文件夹内的内容了,当然还需要有前提,比如反向代理服务器本身需要拥有其他那些目录的访问权。
当然上面只是举例,一般情况下绝对不要去代理根目录。

至于更好的方法?当然是把你要下载的文件放到/projfe/material下面了,这样是绝对安全的。如果因为某些特殊情况一定需要下载外部目录的文件的话,最好需要其他后端语言配合,纯前端是做不到的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文