codeigniter中资产的404 / net :: ERR_ABORTED错误

问题描述 投票:0回答:1

我正在通过我的第一个Codeigniter网页,我遇到了一些特点。首先,我不需要在我的URL前面使用base_url或site_url来使它们工作,至少不是最初的。我设置了主页,简单地做了

<link href="assets/css/bootstrap.min.css" rel="stylesheet" />

这似乎是自动在它前面添加域名。我不确定它是如何工作的,但它适用于所有类似的URL。当我查看检查窗口时,它显示为this。我不知道这是否相关,但我想记下来。

问题发生在我的第二页。我添加了一个名为Admin的新控制器,并将其设置为显示不同的页面。我以与之前相同的方式设置URL,但是当我加载它时,CSS和Javascript没有加载。如果它很重要,我尝试通过Domainname.com/Admin加载它。 html正确加载,但是当我查看控制台时,它为我的图像和文件提供了net::ERR_ABORTED and 404 errors。我仔细检查了所有这些,他们都在正确的位置。我找到了这个页面:404 page not found error in Codeigniter并尝试在我的.htaccess文件中使用解决方案。它不仅没有工作,而且现在正常工作的原始页面拒绝加载任何资产文件。我尝试删除新的代码行,但它仍然无法正常工作,即使所有内容都与以前完全相同。

这是我的.htaccess文件夹:

RewriteEngine On
RewriteBase /eventCentral/

RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d

#RewriteCond $1 !^(index\.php|assets)

RewriteRule ^ index.php [QSA,L]

我尝试完全删除已注释的代码,但它仍然没有修复它。

我的文件结构也正确,可以看到here

正如我所说,我对代码点火器仍然很新,所以如果可以打破Barney风格的答案,我会很感激。我也尝试查看一些似乎相关的堆栈溢出问题,但我仍然没有找到有效的解决方案。

php .htaccess codeigniter http-status-code-404
1个回答
1
投票

您不必使用URL帮助程序的功能,但除非您使用正斜杠为URL添加前缀,否则BROWSER会确定您的资产实际上是以当前页面中的URI段为前缀。那是因为浏览器将URL视为相对URL。为了克服这个问题,要么使用正斜杠,要么使用基本标记:https://www.w3schools.com/tags/tag_base.asp

基本标签示例:

<base href="https://example.com/">

在我自己的应用程序中,我只使用正斜杠前缀使我的URL绝对。在你的情况下,这将是这样的:

<link href="/assets/css/bootstrap.min.css" rel="stylesheet" />

编辑----

我刚注意到你的htaccess有2行,我希望你把parens转换成花括号,所以:

RewriteCond %(REQUEST_FILENAME) !-f

应该:

RewriteCond %{REQUEST_FILENAME} !-f

只是为了踢,尝试改变这个:

RewriteRule ^ index.php [QSA,L]

对此:

RewriteRule .* index.php/$0 [PT,L]
© www.soinside.com 2019 - 2024. All rights reserved.