【问题标题】:Html, external CSS link fails on LinuxHtml,外部 CSS 链接在 Linux 上失败
【发布时间】:2023-07-22 07:25:01
【问题描述】:

我知道有人问过类似的问题,但不明白为什么我们的外部 css 链接在 Linux 上不起作用。 Windows 和 Linux 上的文件夹结构是:

/
    /static
        /css
            style.css
        /img
        /js
    /html
        index.html

index.html 链接到 style.css:

<link rel="stylesheet" type="text/css" href="../static/css/style.css" />

它可以在 Windows 上运行,但在 Linux 上失败并出现 404。这意味着 /static 文件夹和子文件夹没有正确的权限,但它们实际上具有与 /html 文件夹相同的权限。如果所有 /static 内容都放在 /html 文件夹中,那么它可以工作。

有没有人遇到过类似的情况或知道问题出在哪里?

【问题讨论】:

  • 尝试用浏览器打开那个css文件
  • 如果删除 .. 会发生什么?我不确定你真的需要那个。 Windows 通常对文件路径/名称等更宽容
  • @animatora 从浏览器打开 css 文件返回 404。
  • @MyHeadHurts "../" 提供了所需的相对路径。前面的“/”会将其转换为绝对路径。
  • 你在使用 mod_rewrite 吗?应该是服务器配置问题。确保它配置正确。

标签: html linux lighttpd filepath


【解决方案1】:

你在使用 mod_rewrite 吗?应该是服务器配置问题。确保配置正确

【讨论】:

    【解决方案2】:

    为确保路径没有问题,请在浏览器上打开 index.html 并从那里的页面源检查 css 文件的路径。

    问题可能是css文件的权限。

    运行的用户apache ir必须能够读取该文件,否则将无法加载它

    你可以试试跑:

    chmod a+r style.css
    

    为该文件上的每个人添加读取权限,或者:

    chown [user]:[group] style.css
    

    将文件的所有者更改为 apache 正在使用的用户和组。

    您还可以在这个问题Finding out what user Apache is running as?中查看正在运行的用户 apache

    默认情况下它通常是 apache 用户和 apache 组。

    【讨论】:

    • 在浏览器中打开 index.html 返回 404。使用 lighttpd,它指向 /templates 文件夹并执行 index.html,但无法访问 css 文件夹。检查了相关的文件夹/文件权限,一切都是一致的。 Lighttpd 默认不关心特定的用户/组权限。