[英]Javascript list files relative to root
这适用于离线应用程序。
在html
,我们可以访问相对于html页面的文件。 例如:
<script src="scripts/jquery-3.3.1.min.js"></script>
<link rel='stylesheet' href='styles/style.css'>
<img src='./images/file1.jpg'/>
如果我在/images
目录中有很多图像,有没有办法使用Javascript
列出目录中的所有图像,或者我需要硬编码图像名称?
我要求专门使用Javascript和没有Node,直接从Chrome运行文件。
通常,客户端无权访问服务器的目录树。 这意味着任何客户端javascript都无法列出目录树。
如果没有索引文件,您可以配置apache列出文件树,但通常不赞成。
如果您(违反我的建议)想要这样做,您可以配置apache列出文件,然后使用JavaScript获取文件列表。
更好的方法是使用服务器端代码(Node.js Server,PHP等),它可以访问文件系统并可以提供文件列表。
Javascript通常无法访问本地资源,并且在尝试获取普通资源时会抛出CORS错误。 (无论你是否在本地目录中,都会抛出CORS错误。)这使得没有网络服务器这几乎是不可能的。
尝试运行chrome.exe --allow-file-access-from-files
通过运行上面的命令行,它将使用以下命令启用http调用:
$.get("file:///url", function(data) {})
请注意,数据正在返回字符串。 如果你将它附加到你的HTML中,它将显示该目录
手动编码,除非您使用Web服务器(您不需要安装Web服务器,有许多工具可以为单个目录提供服务,例如PHP或Python内置服务器)。
但硬编码是:您无法从javascript访问本地文件系统,但如果您在导航栏中键入( file://
)url或按照指向它的链接,您的浏览器就可以。
如果是链接,浏览器会拒绝远程页面(来自Web服务器),而不是来自本地文件(否则您无法看到网页的下载版本)。
我从来没有测试过绝对路径但是(我认为)如果你对该目录有权限它应该可以工作。
如果没有,则存在浏览器扩展,例如用于Firefox的浏览器扩展,允许打开该链接(如果用户接受它)。
问题是,正如我所说,你需要手动将链接放在页面中,如果有这么多,可能需要一些时间,除非你习惯了像Vim这样的真正的编辑,或者至少,你能够使用您喜欢的任何编程语言生成它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.