我有一堆网址,我想重定向到一个页面。在我的.htaccess文件中,我有......
FallbackResource home.php
所以任何链接都会重定向到那个页面,我有一个PHP脚本,它接受URL并从mysql表中加载一个页面。我构建了一个没有脚本/样式资源的测试页面,一切正常。但是当我添加我的样式和javascript时,我收到以下错误:
main.js:1 Uncaught SyntaxError: Unexpected token <
此错误仅对具有&#39; /
&#39;在他们中。
localhost/home.php
会显示我的网页
没有内容。localhost/tax-information
将显示带有内容localhost/tax-information/school-authority-contact-information
将显示带有内容的home.php
已加载的税务信息/学校管理机构 - 联系信息&#39;但是会抛出错误并因此而来
渲染没有样式表或有任何有效的javascript。错误如下所示:
Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost/toh/tax-information/css/style.css".
Uncaught SyntaxError: Unexpected token <
我知道这是因为正在加载的资源有一个&#39; <
&#39;在第一个字符中,但这对css等资源没有意义。
所以我查看了我的网络选项卡,看看正在加载哪些资源,并且它正在加载错误路径中的每个资源。
<style src="css/style.css>
最终加载localhost / toh / tax-information / css / style.css而不是localhost / css / style.css。在打开该文件时,它不是CSS,而是所请求页面的完整HTML(因此&#39; Unexpected token <
&#39;错误)。当您在网络选项卡中单击它们时,即使这些图片最终也会变成HTML。任何通过cdn加载的东西(所以任何完整的URL资源)加载都很好。
这仅适用于具有辅助路径的URL(localhost / this / that),但会为仅作为主路径的任何内容(localhost / this)加载正确的资源。
我可以看到问题是由FallbackResource以某种方式引起的,并使用相对路径来加载资源。如果我将资源的路径更改为绝对路径(例如css / style.css - &gt; http://localhost/css/style.css),那么它可以正常工作而没有任何问题。将所有内容重新编码为绝对路径将解决我的问题,但不是一个实用的解决方案。这让我相信我的问题是我的.htaccess。有没有其他方法可以将所有URL路径重定向到单个页面并让它们通过相对路径加载资源?
答案 0 :(得分:1)
您似乎在QLabels
和css
链接中使用相对路径,这就是您的相对资源从错误的目的地而不是正确的目的地加载的原因。
要解决此问题,您可以在链接中使用绝对路径,即js
,也可以在网页标题中使用/style.css
标记。在Base
和<head>
之间添加以下内容:
</head>
上面的基本标记告诉webserver从<base href="/">
(主目录)加载相关资源。因此,如果您的/
文件位于根目录的css
文件夹中,您的Web服务器将尝试从真实路径/style
加载它,而不是查看请求的uri。
另见:
答案 1 :(得分:0)
您使用的是相对路径,而不是绝对路径。
在引用文件src=“css/css.css”
时,它正在相对于引用文件的位置加载样式表。
要加载文件的网站根目录,请使用以下命令:src=“/css/css.css
(路径前带有正斜杠)。