无法访问 CodeIgniter 资产文件夹中的 CSS 文件,显示 404 错误
Posted
技术标签:
【中文标题】无法访问 CodeIgniter 资产文件夹中的 CSS 文件,显示 404 错误【英文标题】:Can't access CSS files in CodeIgniter assets folder, shows 404 error 【发布时间】:2017-06-28 00:30:49 【问题描述】:我的应用程序文件夹结构是这样的
但我无法访问assets
文件夹中的内容。他们总是显示“404 page not found”。
例如,mysite.com/assets/frontend/page.css
显示错误。同时mysite.com/assets/css/bootstrap.min.css
显示错误。
我的.htaccess
文件是
RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ index.php/$1 [L]
【问题讨论】:
您是否设置了基本 url 并自动加载 url 助手? 是的,我添加了基本 url 并自动加载 url 帮助程序。该代码在我的开发服务器(Easy PHP Dev Server)中运行良好,但在我的虚拟主机中运行良好。 因为您最有可能使用相对链接。当您使用 mod_rewrite 时,您将需要使用绝对链接、前面的正斜杠或头部中的基本标记。 【参考方案1】:将此规则添加到您的 htaccess 重写中:
RewriteCond $1 !^(index\.php|assets)
问题在于,当您从项目中删除 index.php 时,您实际上所做的是重写该级别的任何内容以指向 index.php...
如果 index.php 没有被阻止,你会看到例如http://localhost/index.php/assets/
等等...
您需要调整重写以忽略您的资产文件夹!^(忽略开头)然后资产,这样您就可以访问该文件夹
您可以通过在浏览器中转到 mysite.com/assets/css/bootstrap.min.css
来检查它是否正常工作,并且它说它不存在(使用您当前的 .htaccess 文件)
你有RewriteRule ^(.*)$ index.php/$1 [L]
的重写正在这样做......
^
是字符串的开头 (uri)
(
是正则表达式组的开始
.*
是第一个 URI 级别的所有内容
)
是正则表达式组的结尾
$
是字符串的结尾
然后您告诉它有效地查看 index.php/ 然后继续看$1
我给你的规则是在你已经必须忽略某些 URI 段的情况下添加例外
【讨论】:
以上是关于无法访问 CodeIgniter 资产文件夹中的 CSS 文件,显示 404 错误的主要内容,如果未能解决你的问题,请参考以下文章