0

我正在我的第一个 CodeIgniter 项目中工作......

在构建了我的大部分 PHP 并开始使用几乎完成的脚本后,我意识到所有对application/views/文件夹的访问都被.htaccess.

当我想访问特定于页面的 JavaScript、图像或任何网络资源文件夹时,这对我的文件结构来说是一个大问题。因为我所有的人都views template假设该文件是在本地使用的(也就是说Page_name/images/cutedog.jpg,在我的代码中更准确地说<img src="{images}cutedog.jpg">)。

我找到的解决方案是修改 .htacces 以便它过滤掉所有媒体文件并允许访问我的应用程序文件夹。但是通过这样做,我会揭示我宁愿避免的文件结构。

我知道我可以将我的网络资源放在我的应用程序文件夹之外,这样就可以解决问题。但是出于可维护性的目的,我认为现在拥有一切会更合乎逻辑。

所以我的问题如下......你会建议什么解决方法: - 我可以维护我的网络资源 application/views/issue/WEB_PAGE/Web-resource-folder - 隐藏我的文件结构 - 可以访问网络资源

我的 .htaccess

Deny from all
<FilesMatch "\.(css|js|jpg|pdf|avi|mpg|robots\.txt|png|pdf|favicon\.ico)$">
    Order allow,deny
    Allow from all
</FilesMatch>

我的文件结构:

-+ /application/
 |
 |-+ /Typical CI folders/        
 |-+ /view/
   |-+ /issue/
     |-+ /1/
       |-+ /page1/
         |-+ /img/
         |-+ /js/
         |-+ /video/
       |-+ /page2/
         |-+ /img/
         |-+ /js/
         |-+ /video/
4

1 回答 1

1

您将需要为将告诉 .htaccess 的内容编写复杂的重写规则,例如:

if url is blah/bloh/blih/WEB_PAGE/images/cutedog.jpg 
then fetch application/views/issue/WEB_PAGE/img/cutedlog.jpg

如果您问我,随着您创建更多资源,这将变得越来越麻烦。就像您建议的那样,您应该将 Web 资源放在应用程序文件夹之外。

我的 CI 结构总是如下所示:

/application
/resources
   /page1
      /img
      /js
      /video
   /page2
      /img
      /js
      /video
于 2013-01-23T17:13:40.740 回答