服务器下载渲染的Twig文件而不是在浏览器中显示它

时间:2017-02-16 21:01:12

标签: php http twig slim

我的应用程序出了问题,在我的开发环境中,一切都按照应有的方式工作。但在我的托管服务器上,php被解释但它没有在浏览器中显示,它只是下载文件。

视图以slim / twig呈现,当我做一个json响应而不是返回视图时,一切都没问题。

 $apiEndpoints = json_decode(file_get_contents(__DIR__.'/ApiController/endpoints.json'));

    return $this->view->render($response, 'index.twig', [
        'apiEndpoints' => $apiEndpoints,
    ]);

页面是Application

我在这个服务器上有相同的环境,在另一个应用程序中没有问题,我已经降级了slim / twig。

也许有人在http标头中看到了问题?我觉得它看起来应该如此。

3 个答案:

答案 0 :(得分:2)

服务器将响应发送为application/x-httpd-php,您的浏览器不知道如何处理它。 HTML的内容类型应为text/html

$ curl --include http://app.uhc-scorpions.ch/

HTTP/1.1 200 OK
Date: Fri, 17 Feb 2017 06:34:52 GMT
Server: Apache/2.2.22 (Debian)
X-Powered-By: PHP/7.0.10
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Set-Cookie: userSession_Session=2quum1alcu5siipkim6qmdqul2; path=/; HttpOnly
Content-Length: 6310
Content-Type: application/x-httpd-php

答案 1 :(得分:0)

感谢您的所有帖子看起来我对渺小的框架感到愚蠢:)

不工作:

imageView

WORKING:

 $response->withHeader('Content-type', 'text/html');
    return $this->view->render($response, 'index.twig', [
        'apiEndpoints' => $apiEndpoints,
    ]);

现在可行了

答案 2 :(得分:-3)

我不了解您的代码和架构,但为什么视图会进行渲染?很有意义的是,树枝可以渲染视图。所以这个:

return $this->view->render(

应该看起来像这样:

return $twig->render($this->view, array(...