Symfony环境和调试栏

3
我是Symfony的新手。在做一些测试(Symfony 2.0.13和php5.3.8在WAMP2.2中)并阅读文档(链接1) (链接2)时,我对环境有点困惑。
当我访问LOCALHOST/Symfony/web/app_dev.php/demo/hello/Foo(app_dev表示开发环境,对吗?)时,我可以看到Web调试工具栏,并且在“项目配置”选项卡中单击分析器信息时,我可以看到: Environment dev 现在我转到LOCALHOST/Symfony/web/app.php/demo/hello/Foo,在Web调试工具栏中(顺便问一下,为什么我现在看到这个工具栏了?这不是生产环境吗?我的用户默认应该看到这个条吗?)我也看到,在“项目配置”选项卡中: Environment dev 似乎无论URL是app_dev.php还是app.php,此“演示”Bundle都与“dev”相关联?
此外,我进行了更多的测试:我的本地IP是192.168.153.1。
当我尝试访问时:
http://192.168.153.1/Symfony/web/app_dev.php/demo/hello/Foo

它说:“您无权访问此文件。请查看app_dev.php获取更多信息。”所以,如果我编辑了app_dev.php中的行并添加了我的(外部)IP地址,那么我就可以访问。

但是,当我连接到

http://192.168.153.1/Symfony/web/app.php/demo/hello/Foo

它说的是一样的!看来我的app.php没有被执行,无论我在URL中输入什么,都会执行app_dev.php。

这真的很令人困惑!我检查了我的htaccess,一切似乎都是正确的。

有人能帮我弄清楚这个问题吗?

我没有修改过app_dev.php或app.php的代码,一切都是原装的。


2012年5月2日 编辑

发生了一些奇怪的事情。我编辑了我的config_prod.yml文件,加入了以下内容:

# load the profiler
framework:
    profiler: { only_exceptions: false }

# enable the web profiler
web_profiler:
    toolbar: true
    intercept_redirects: true
    verbose: true

保存后,编辑了app.php文件。想测试一下如果我改变了以下内容会发生什么:

$kernel = new AppKernel('prod', false); //Symfony default

$kernel = new AppKernel('prod', true);

当我访问app.php/WHATEVER时,出现了错误页面,因此我撤消了所有更改,重新启动了Apache,现在WebDebug工具栏不再显示在PROD(app.php/WHATEVER)中。
所以,我不知道为什么,但它现在似乎按预期工作,尽管config_prod.yml文件和app.php处于原始状态。它还允许我使用我的外部IP连接到app.php 真的很奇怪...

你在配置中告诉你的应用程序使用哪个环境? - MetalFrog
你改过你的 Apache 配置吗? - Nanocom
@PhilemonphilipKunjumon,你是否正在呈现有效的HTML页面?只有在呈现输出中存在body标签时,Web调试工具栏才会附加到页面上。 - michaelotoole
是的,我正在呈现一个有效的HTML页面。 - Philemon philip Kunjumon
嘿...它正在工作...谢谢@michaelotoole,实际上你是对的,Web调试栏只会在呈现输出中有body标签时才会附加... - Philemon philip Kunjumon
显示剩余4条评论
2个回答

5

以下是针对那些使用格式错误的输出模板的答案。

[链接已移除,以免重定向到垃圾网站]

以下内容为直接复制:

"嗨。您必须在您正在查看的页面上拥有正确的HTML。我认为调试栏会在</body>之前自动添加。因此,如果您有像下面这样的页面,您应该可以看到调试栏。"

代码:

<html> <head>

</head> <body>

</body> </html>

links are not answers - Petro Korienev

3

您需要在app_dev.php中禁用IP过滤,然后您将能够从外部IP地址看到调试工具栏。

顺祝商祺, Max


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接