javascript - URL 重定向未从正确的相对来源加载资源

标签 javascript php html css .htaccess

我有一堆要重定向到单个页面的 URL。在我的 .htaccess 文件中我有...

FallbackResource home.php

因此任何链接都将重定向到该页面,我有一个 PHP 脚本获取 URL 并从 mysql 表加载页面。我构建了一个没有脚本/样式资源的测试页面,一切正常。但是,当我添加样式和 javascript 时,出现以下错误:

main.js:1 Uncaught SyntaxError: Unexpected token <

此错误仅出现在具有“/”的 URL 中' 在他们中。

  • 因此对于 url localhost/home.php按原样显示我的页面 没有内容。
  • 网址 localhost/tax-information将显示带有内容的 home.php
    按应有的方式加载“税务信息”。
  • 网址 localhost/tax-information/school-authority-contact-information将显示带有内容的 home.php 已加载“税务信息/学校当局联系信息”,但会抛出错误,结果会 不呈现样式表或有任何有效的 javascript。

错误看起来像这样:

Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost/toh/tax-information/css/style.css".
Uncaught SyntaxError: Unexpected token <

我知道这是因为正在加载的资源有一个'< ' 在第一个字符中,但这对于像 css 这样的资源没有意义。

所以我检查了我的网络选项卡以查看正在加载哪些资源,它正在以错误的路径加载所有资源。

<style src="css/style.css>最终加载 localhost/toh/tax-information/css/style.css 而不是 localhost/css/style.css。打开该文件后,它不是 CSS,而是所请求页面的完整 HTML(因此出现“Unexpected token <”错误)。当您在网络选项卡中单击图片时,甚至图片最终也会以某种方式变成 HTML。通过 cdn 加载的任何内容(因此任何完整的 URL 资源)都可以正常加载。

这仅发生在具有次要路径(如(localhost/this/that))但为仅是主要路径(localhost/this)的任何内容加载正确资源的 URL 上。

我可以看出问题是由 FallbackResource 和使用相对路径加载资源以某种方式引起的。如果我将资源的路径更改为绝对路径(例如 css/style.css -> http://localhost/css/style.css ),那么它可以正常工作,没有任何问题。将所有内容重新编码为绝对路径将解决我的问题,但这不是一个实用的解决方案。这让我相信我的问题是我的 .htaccess。有没有另一种方法可以将所有 url 路径重定向到单个页面并让它们通过相对路径加载资源?

最佳答案

您似乎在 css 中使用了相对路径和 js链接,这就是为什么您的相关资源从错误的目的地而不是正确的目的地加载的原因。

要解决此问题,您可以在链接中使用绝对路径,即 /style.css或使用 Base网页标题中的标记。在<head>之间和 </head>添加以下内容:

<base href="/">

上面的base标签告诉webserver从/加载相关资源(主目录)。所以如果你的 css文件位于 /style您的 Web 服务器将尝试从真实路径加载它的根文件夹 /style/file.css而不是查看请求的 uri。

另请参阅:

Seo Friendly Url css img js not working

关于javascript - URL 重定向未从正确的相对来源加载资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50261675/

相关文章:

javascript - 如何使我的 CSS 滚动固定到表头和第一列(我也对使用 JS 或 JQuery 的想法持开放态度)

javascript - 如何将函数应用于下拉菜单?

javascript - 更新循环内对象内的变量

javascript - 用于 NodeJS 的 N-triples 到 RDF/XML JavaScript 转换器

javascript - 如何测试我的 HTML 元素的祖先是否具有 CSS 类?

javascript - 我如何使用 AJAX 将隐藏值提交给 php

javascript - HTML 标签在文本区域内无法正确显示

php - MySQL:如果值存在则对该行进行更新,如果值不存在则进行插入

php - 回显边框底部 php

html - 灯箱图片不居中