我们在ZendSkeletonApplication(https://github.com/zendframework/ZendSkeletonApplication)之上构建了一个应用程序。添加了各种模块:
'modules' => array(
'Application',
'DOMPDFModule',
'Administrative',
'Protocol',
...
)
每个模块都有module.config.php
和Module.php
加载配置
此外,我们定义了一个类,它设置各种全局变量来处理我们的应用程序路径,如:
define('PUBLIC_FOLDER', 'public');
define('CSS_FOLDER', 'public' . DS_URL . 'css');
define('JAVASCRIPT_FOLDER', 'public' . DS_URL . 'css');
当我们在VirtualHost
上配置指向应用程序根目录的apache
时:
<VirtualHost *:80>
DocumentRoot /var/www/html/application
...
使用localhost/public/
在浏览器中访问它,它完美无瑕。所有文件(css,javascript)都没有加载任何错误。
当我们决定将应用程序放在某种QA服务器中来模拟生产环境时,问题就开始了。在那里,我们需要删除网址上的/public
部分。因此,我们将apache
配置指向:
<VirtualHost *:80>
DocumentRoot /var/www/html/application/public
...
现在,当我们在http://our_qa_ip/
上点击浏览器时,整件事情变得疯狂:
使用带有PHP CLI Server
(php -S 0.0.0.0:8080 -t public/ public/index.php
)的应用程序时也会发生这种情况。
任何人都知道发生了什么事吗?为什么在直接访问root时调用这多个请求?是因为它没有找到任何外部文件(css,javascript)?