我在第一个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/
答案 0 :(得分: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