【问题标题】:Relative path not working for me with Apache相对路径不适用于 Apache
【发布时间】:2010-12-23 23:55:54
【问题描述】:

我目前正在开发一个相当复杂的 HTML5 应用程序。到目前为止,我只是通过直接从我的文件系统启动 HTML 文件进行测试,不涉及服务器。但是,我现在需要使用 localStorage,as has been previously discussed on StackOverflow,localStorage 不会在那个环境中持续存在,所以我现在必须引入某种主机服务器。

我设置了 Apache 2.2.17,配置为 localhost。我将 DocumentRoot 配置为包含我的 HTML 文件(该文件简称为 index.html)的目录,因此我现在可以以 http://localhost/index.html. 的身份访问该页面我已经确认 localStorage 将在此设置中正确保留。

然而,我遇到了一个非常严重的问题,它会导致除了开发人员之外几乎任何人都无法使用该网站。我的大部分布局都依赖于一个自定义的 jQueryUI 主题,我在 <head> 中访问它,如下所示:

<link rel="stylesheet" href="themes/custom-theme/jquery-ui-1.8.6.custom.css/">

当我直接从我的文件系统启动 HTML 文件时,此相对路径运行良好。然而,Apache 似乎没有找到它。根据 Firebug,它正在返回:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head></body>
<h1>Not Found</h1>
<p>The requested URL /themes/custom-theme/jquery-ui-1.8.6.custom.css/ was not found on this server.<p>
</body></html>

知道什么给了?我想不出任何理由为什么相对路径在 Apache 下的行为与我直接从文件系统使用它时不同,而且很明显它位于我的 DocumentRoot 的子目录中,所以我希望它可以被 Apache 访问服务器。

有什么线索吗?

FWIW,我是一位非常有经验的程序员,但在设置 Apache 方面是新手。如果还有其他我应该使用的配置选项,我很可能对它们并不熟悉。

【问题讨论】:

    标签: apache html relative-path


    【解决方案1】:

    如果您从 CSS URL 中删除最后一个“/”会怎样:

    <link rel="stylesheet" href="themes/custom-theme/jquery-ui-1.8.6.custom.css" />
    

    (您当前正在尝试将“jquery-ui-1.8.6.custom.css”作为目录访问...)

    【讨论】:

    • 确实如此。奇怪的是它在其他环境中运行良好。另外,这很有趣,因为我认为在这样的 URL 末尾添加斜杠总是合法的;显然不是。
    • 它是“合法的”但有不同的含义,刚刚向你证明了这一点:)
    猜你喜欢
    • 2012-08-29
    • 2011-07-12
    • 2015-05-14
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多