提问人:Bardo 提问时间:10/5/2023 更新时间:10/5/2023 访问量:123
在 Android 中从 HTML 引用本地文件
Referencing local files from HTML in Android
问:
我有一个非常简单的 HTML 应用程序,它使用几个 js 文件、一个 css 和几个图像。我将它们全部捆绑在一个文件夹中,该文件夹下载到我的手机的“下载”文件夹中。
现在,当我转到该文件夹并打开主 html 文件时,它会在 Chrome 浏览器中以以下 URL 打开:content://media/external/file/<10 位数字>并且没有加载本地引用的其他文件。这意味着没有图像,当然也没有js功能。
我应该把我的文件放在哪里,或者我应该如何从主html文件中引用它们,以实现正常的操作过程,在执行主HTML文件时,这些文件通常是加载的?
我知道我可以下载一个小型 Web 服务器在本地运行它并让它为页面提供服务,但这对我来说似乎有点矫枉过正,我想把它作为最后的选择。
答:
将文件移至其他位置:将 HTML 文件和所有相关资源(CSS、JavaScript、图像)移至设备上的其他文件夹,例如“文档”或“内部存储”文件夹。然后尝试从那里打开 HTML 文件。从这些位置访问文件时,浏览器的安全限制可能较少。
使用相对路径访问文件: 确保使用 HTML 文件中的相对路径引用 CSS、JavaScript 和图像文件。例如,如果 HTML 文件与 CSS 文件位于同一文件夹中,请使用类似 的相对路径。
<link rel="stylesheet" href="style.css">
使用文件 URI 方案:您可以尝试使用 URI 方案来访问 HTML 文件和资源。例如,通过在 Chrome 浏览器的地址栏中键入来打开 HTML 文件。请务必替换为 HTML 文件的实际路径。
file:///
file:///path/to/your/file.html
/path/to/your/
浏览器设置:检查移动设备上 Chrome 浏览器的设置。可能有一个选项可以允许本地文件访问或禁用本地文件的安全限制。这些设置可能因浏览器和版本而异。
第三方应用程序:Google Play 商店中提供了第三方文件管理器应用程序和 HTML 查看器,可让您更轻松地使用本地资源打开 HTML 文件。这些应用可能会更好地处理本地文件访问。
如果这些选项都不起作用,您可能需要考虑使用本地 Web 服务器作为最后的手段,如前所述。这是在本地提供 HTML 应用程序及其资源的可靠方式,可确保一切按预期工作,而无需处理浏览器限制。
您将文件放在合适的文件夹中。
问题在于您使用的内容方案 uri 也隐藏了真实文件名。
content://media/external/file/123456
指向您的 HTML 文件。如果浏览器必须显示类似图像的图片.jpg它将构建一个类似 content://media/external/file/image.jpg 的 uri。
但这不是有效的 uri,因为该提供程序使用您告诉我们的数字。即使 url 没问题,您也不会拥有它的读取权限。
评论
file://