【问题标题】:Update relative path to "partially" absolute path in .html files将相对路径更新为 .html 文件中的“部分”绝对路径
【发布时间】:2021-08-16 08:56:57
【问题描述】:

有一组.html 文件位于不同的文件夹中。 假设结构是:

--folder
|--files.html
|--filename.html
--folder2
|--files.html

files.html 中有一个类似href="filename.html" 的引用。实际上,当您看到这样的引用时,这意味着 filename.html 与引用它的 files.html 位于同一文件夹中。而不是这个hrefhref 应该是href="folder/filename.html"

可能有大量文件夹和许多文件具有此类引用,我无法硬编码名称。

有没有办法扫描文件并使用 bash 进行 infile 替换?

【问题讨论】:

  • 看看find(1) 递归搜索文件的命令和可能sed(1) 编辑文件的命令。
  • 您不需要进行该更改。如果浏览器显示“folder/files.html”,则相对 URL“filename.html”将引用“folder/filename.html”。您想在这里解决什么问题?
  • 我认为在 Bash 中没有简单的方法可以实现这一点。更好地寻找专门为此任务开发的软件。
  • 是的,我同意这个要求是违反自然的。但是托管这些 html 的网站不处理此类链接。它期望看到像href='folder/file.html'这样的模式,即使文件位于在同一个文件夹中

标签: bash sh relative-path absolute-path


【解决方案1】:

首先要做的是:使用纯 HTML 是不可能的。您可以编写一个 shell 脚本来更新 files.html,但您必须在每次修改文件树​​后运行它。 (提示你 sedls -m(编辑:ls 可能比 ls -m 更好,因为你可能不需要中间的逗号。)

虽然有一些选项可以自动创建文件列表,但它们需要一些补充。在详细说明这些内容之前,您能否更新一下您对以下内容的问题?

能否请您添加有关网络服务器的详细信息? 根据这一点,可能还有其他选项。 请参阅http://nginx.org/en/docs/http/ngx_http_autoindex_module.htmlhttps://httpd.apache.org/docs/2.4/mod/mod_autoindex.htmlhttps://docs.microsoft.com/en-us/iis/configuration/system.webserver/directorybrowse

如果您在没有网络服务器的情况下使用这些 HTML 文件,那么 javascript 呢?可以选择吗?

一般来说:帮助您解决原始任务可能比“抽象”并且在这种情况下“罕见”的事情更容易。很高兴知道您实际上要解决什么问题,这样我们就可以深入了解它。

【讨论】:

    猜你喜欢
    • 2012-01-31
    • 2016-12-11
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 2011-02-21
    • 2017-08-01
    • 2011-11-07
    • 2011-05-02
    相关资源
    最近更新 更多