我在标题中的问题
我想将应用程序文件夹中包含(css, js, images)
的assets文件夹保留在外面。
如果我将assets
文件夹保留在应用程序文件夹中,则无法访问其中的文件。
.htaccess文件代码
RewriteEngine on
RewriteCond $1 !^(index\.php|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L]
标准的应用程序结构:
之前的结构没有错误。
我希望结构如下所示:
我该怎么做?
答案 0 :(得分:0)
您的问题是,您使用的.htaccess
文件正在重写静态资产的网址,从而破坏了链接,因此您需要对其进行更改。
如果您将assets/
文件夹保留在应用程序的根目录中,并将.htaccess
修改为类似的内容,则可以解决问题:
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L]
更改位于第二行 - 基本上条件是"如果路径不是以index.php,assets或robots.txt开头,则重写它以包含index.php开始&#34 ;.增加资产应解决问题。
编辑:默认情况下,CodeIgniter在application/
文件夹中有一个.htaccess文件,该文件拒绝访问其中的任何内容。如果您确实希望能够从该文件夹提供静态文件,则可以修改该文件。但是,这将是一个非常糟糕的主意。您的静态资产应该存在于Web根目录中,并且尝试从应用程序文件夹中提供它们将充满问题 - 如果您允许从外部访问application/
目录,则可能会导致一些严重的安全问题。