404/net::ERR_ABORTED codeigniter 中的资产错误
404/net::ERR_ABORTED error for assets in codeigniter
我正在浏览我的第一个 Codeigniter 网页,并且 运行 发现了一些特点。首先是我不需要在我的 URL 前面使用 base_url 或 site_url 来让它们工作,至少最初不需要。我设置了主页,然后简单地做了
<link href="assets/css/bootstrap.min.css" rel="stylesheet" />
而且这个好像是自动在前面加了域名。我不确定它是如何工作的,但它适用于所有类似的 URL。当我查看检查 window 时,它显示为 this。我不知道这是否相关,但我想记下它。
问题在我的第二页上。我添加了一个名为 Admin 的新控制器,并将其设置为显示不同的页面。我以与之前相同的方式设置 URL,但是当我加载它时,CSS 和 Javascript 没有加载。以防万一,我尝试通过 Domainname.com/Admin 加载它。 html 加载正确,但当我查看控制台时,它给了我一个 net::ERR_ABORTED and 404 errors for my images and files. I've double checked all of them, and they are all in the correct spot. I found this page: 并尝试在我的 .htaccess 文件中使用该解决方案。它不仅不起作用,而且现在正常工作的原始页面拒绝加载任何资产文件。我尝试删除新的代码行,但它仍然无法正常工作,即使一切都与以前完全相同。
这是我的 .htaccess 文件夹:
RewriteEngine On
RewriteBase /eventCentral/
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
#RewriteCond !^(index\.php|assets)
RewriteRule ^ index.php [QSA,L]
我尝试完全删除注释的代码段,但仍然没有修复。
我的文件结构也是正确的,可以看到here.
正如我所说,我对 code igniter 还是很陌生,所以如果答案可以分解为 Barney 风格,我将不胜感激。我也尝试查看了一些看起来相关的堆栈溢出问题,但我仍然没有找到有效的解决方案。
您不必使用 URL 帮助程序的功能,但除非您在 URL 前面加上正斜杠,否则浏览器会决定您的资产实际上以 URI 段为前缀从当前页面。那是因为浏览器将 URL 视为相对 URL。为了克服这个问题,请使用正斜杠或基本标记:https://www.w3schools.com/tags/tag_base.asp
基本标签示例:
<base href="https://example.com/">
在我自己的应用程序中,我只是使用正斜杠前缀使我的 URLs 绝对化。在你的情况下,它看起来像这样:
<link href="/assets/css/bootstrap.min.css" rel="stylesheet" />
编辑----
我刚刚注意到你的 htaccess 有 2 行,我希望你将括号转换为花括号,所以:
RewriteCond %(REQUEST_FILENAME) !-f
应该是:
RewriteCond %{REQUEST_FILENAME} !-f
只是为了好玩,尝试改变这个:
RewriteRule ^ index.php [QSA,L]
为此:
RewriteRule .* index.php/[=15=] [PT,L]
RewriteCond $1 !^(index.php|assets|myadmin|robots.txt)
我正在浏览我的第一个 Codeigniter 网页,并且 运行 发现了一些特点。首先是我不需要在我的 URL 前面使用 base_url 或 site_url 来让它们工作,至少最初不需要。我设置了主页,然后简单地做了
<link href="assets/css/bootstrap.min.css" rel="stylesheet" />
而且这个好像是自动在前面加了域名。我不确定它是如何工作的,但它适用于所有类似的 URL。当我查看检查 window 时,它显示为 this。我不知道这是否相关,但我想记下它。
问题在我的第二页上。我添加了一个名为 Admin 的新控制器,并将其设置为显示不同的页面。我以与之前相同的方式设置 URL,但是当我加载它时,CSS 和 Javascript 没有加载。以防万一,我尝试通过 Domainname.com/Admin 加载它。 html 加载正确,但当我查看控制台时,它给了我一个 net::ERR_ABORTED and 404 errors for my images and files. I've double checked all of them, and they are all in the correct spot. I found this page:
这是我的 .htaccess 文件夹:
RewriteEngine On
RewriteBase /eventCentral/
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
#RewriteCond !^(index\.php|assets)
RewriteRule ^ index.php [QSA,L]
我尝试完全删除注释的代码段,但仍然没有修复。
我的文件结构也是正确的,可以看到here.
正如我所说,我对 code igniter 还是很陌生,所以如果答案可以分解为 Barney 风格,我将不胜感激。我也尝试查看了一些看起来相关的堆栈溢出问题,但我仍然没有找到有效的解决方案。
您不必使用 URL 帮助程序的功能,但除非您在 URL 前面加上正斜杠,否则浏览器会决定您的资产实际上以 URI 段为前缀从当前页面。那是因为浏览器将 URL 视为相对 URL。为了克服这个问题,请使用正斜杠或基本标记:https://www.w3schools.com/tags/tag_base.asp
基本标签示例:
<base href="https://example.com/">
在我自己的应用程序中,我只是使用正斜杠前缀使我的 URLs 绝对化。在你的情况下,它看起来像这样:
<link href="/assets/css/bootstrap.min.css" rel="stylesheet" />
编辑----
我刚刚注意到你的 htaccess 有 2 行,我希望你将括号转换为花括号,所以:
RewriteCond %(REQUEST_FILENAME) !-f
应该是:
RewriteCond %{REQUEST_FILENAME} !-f
只是为了好玩,尝试改变这个:
RewriteRule ^ index.php [QSA,L]
为此:
RewriteRule .* index.php/[=15=] [PT,L]
RewriteCond $1 !^(index.php|assets|myadmin|robots.txt)