我正在我的第一个CodeIgniter项目中工作...
在构建了我的大部分 PHP 并开始玩几乎完成的 scrip 之后,我意识到.htaccess
拒绝了对application/views/
文件夹的所有访问。
当我想访问特定于页面的JavaScript,图像或任何Web资源文件夹时,这对我的文件结构来说是一个巨大的问题。由于我所有的views template
都假设该文件在本地使用(也就是说Page_name/images/cutedog.jpg
,在我的代码中更准确地说是<img src="{images}cutedog.jpg">
)。
我找到的解决方案是修改.htacces,以便它过滤掉所有媒体文件并允许访问我的应用程序文件夹。但是通过这样做,我会揭示我宁愿避免的文件结构。
我知道我可以将我的 Web 资源放在我的应用程序文件夹之外,这将解决问题。但是出于可维护性的目的,我认为现在拥有一切会更合乎逻辑。
所以我的问题是...您会建议采取哪些解决方法,以便: - 我可以在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/
你需要为那些会告诉.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