doufu5521 2017-12-25 00:49
浏览 209
已采纳

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

I'm working through my first Codeigniter webpage, and I've run into a few peculiarities. The first is that I haven't needed to use base_url or site_url in front of my URLs to get them to work, at least not originally. I set up the main page, and simply did

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

and this seemed to automatically add the domain name in front of it. I'm not sure how it worked, but it works for all the URLs like it. When I look at the inspect window, it shows like this. I don't know if this is relevant, but I wanted to make note of it.

The issue was on my second page. I added a new controller named Admin, and set it to bring up a different page. I set up the URLs in the same way I did before, but when I loaded it, the CSS and Javascript didn't load. In case it matters, I tried loading it by doing Domainname.com/Admin. The html loads correctly, but when I looked at the console, it gave me a 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: 404 page not found error in Codeigniter and tried using the solution there in my .htaccess file. It not only didn't work, but now the original page that was working correctly refuses to load up any of the asset files. I tried removing the new line of code, but it still will not work correctly, even though everything is the exact same way it was before.

Here is my .htaccess folder:

RewriteEngine On
RewriteBase /eventCentral/

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

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

RewriteRule ^ index.php [QSA,L]

I tried removing the commented piece of code completely, but it still didn't fix it.

My file structure is also correct, and can be seen here.

As I said, I'm still very new to code igniter, so if answers can be broken down Barney style, I'd appreciate it. I've also tried looking through a number of stack overflow questions that seemed relevant, and I still haven't found a solution that works.

  • 写回答

1条回答 默认 最新

  • dqsh30374 2017-12-25 00:55
    关注

    You don't have to use the URL helper's functions, but unless you prefix your URLs with a forward slash, the BROWSER decides that your asset is actually prefixed with the URI segments from the current page. That's because the browser sees the URL as a relative URL. In order to overcome that, either use the forward slash, or a base tag: https://www.w3schools.com/tags/tag_base.asp

    Example of base tag:

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

    In my own applications, I just make my URLs absolute with the forward slash prefix. In your case that would look like this:

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

    EDIT ----

    I just noticed that your htaccess has 2 lines, and I'd like you to convert the parens to curly braces, so:

    RewriteCond %(REQUEST_FILENAME) !-f
    

    Should be:

    RewriteCond %{REQUEST_FILENAME} !-f
    

    Just for kicks, try to change this:

    RewriteRule ^ index.php [QSA,L]
    

    To this:

    RewriteRule .* index.php/$0 [PT,L]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败