0

我制作了 Symfony 2 应用程序,该应用程序在我的 localhost 服务器中的生产和开发模式下运行良好,但是当我将它实时推送到我的 ftp 时出现了问题。我检查了日志,看起来 Twig 在查找模板时遇到了问题。

我的服务器有日志:

[2015-05-18 11:10:21] request.INFO: Matched route "homepage" (parameters: "_controller": "AppBundle\Controller\DefaultController::indexAction", "_route": "homepage") [] []
[2015-05-18 11:10:21] security.INFO: Populated SecurityContext with an anonymous Token [] []
[2015-05-18 11:10:21] request.CRITICAL: Uncaught PHP Exception InvalidArgumentException: "Unable to find template "AppBundle:Home:index.html.twig"." at /vendor/symfony/symfony/src/Symfony/Bridge/Twig/TwigEngine.php line 128 {"exception":"[object] (InvalidArgumentException(code: 0): Unable to find template \"AppBundle:Home:index.html.twig\". at /vendor/symfony/symfony/src/Symfony/Bridge/Twig/TwigEngine.php:128, Twig_Error_Loader(code: 0): Unable to find template \"AppBundle:Home:index.html.twig\". at /vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Loader/FilesystemLoader.php:91, InvalidArgumentException(code: 0): Unable to find template \"AppBundle:Home:index.html.twig\" : \"Unable to find file \"@AppBundle/Resources/views/Home/index.html.twig\".\". at /vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Templating/Loader/TemplateLocator.php:81, InvalidArgumentException(code: 0): Unable to find file \"@AppBundle/Resources/views/Home/index.html.twig\". at /app/bootstrap.php.cache:2456)"} []
[2015-05-18 11:10:21] security.DEBUG: Write SecurityContext in the session [] []

有谁知道有什么问题?

@edit 我也把我的 config.yml

imports:
                - { resource: parameters.yml }
                - { resource: security.yml }
                - { resource: services.yml }
                - { resource: "@AppBundle/Resources/Config/services.yml" }

            framework:
                #esi:             ~
                #translator:      { fallback: "%locale%" }
                secret:          "%secret%"
                router:
                    resource: "%kernel.root_dir%/config/routing.yml"
                    strict_requirements: ~
                form:            ~
                csrf_protection: ~
                validation:      { enable_annotations: true }
                templating:
                    engines: ['twig']
                    #assets_version: SomeVersionScheme
                default_locale:  "%locale%"
                trusted_hosts:   ~
                trusted_proxies: ~
                session:
                    # handler_id set to null will use default session handler from php.ini
                    handler_id:  ~
                fragments:       ~
                http_method_override: true

            # Twig Configuration
            twig:
                debug:            "%kernel.debug%"
                strict_variables: "%kernel.debug%"

            # Assetic Configuration
            assetic:
                debug:          "%kernel.debug%"
                use_controller: false
                bundles:        [ ]
                #java: /usr/bin/java
                filters:
                    cssrewrite: ~
                    #closure:
                    #    jar: "%kernel.root_dir%/Resources/java/compiler.jar"
                    #yui_css:
                    #    jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"

            # Doctrine Configuration
            doctrine:
                dbal:
                    driver:   "%database_driver%"
                    host:     "%database_host%"
                    port:     "%database_port%"
                    dbname:   "%database_name%"
                    user:     "%database_user%"
                    password: "%database_password%"
                    charset:  UTF8
                    # if using pdo_sqlite as your database driver:
                    #   1. add the path in parameters.yml
                    #     e.g. database_path: "%kernel.root_dir%/data/data.db3"
                    #   2. Uncomment database_path in parameters.yml.dist
                    #   3. Uncomment next line:
                    #     path:     "%database_path%"

                orm:
                    auto_generate_proxy_classes: "%kernel.debug%"
                    auto_mapping: true

            # Swiftmailer Configuration
            swiftmailer:
                transport: "%mailer_transport%"
                host:      "%mailer_host%"
                username:  "%mailer_user%"
                password:  "%mailer_password%"
                spool:     { type: memory }

            #for user
            fos_user:
                db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
                firewall_name: main
                user_class: AppBundle\Entity\User
                registration:
                        form:
                            type: new_user_registration

            #vich file uploader
            vich_uploader:
                db_driver: orm

                mappings:
                    download_file:
                        uri_prefix:         /files/download
                        upload_destination: %kernel.root_dir%/../web/files/download

                    offer_file:
                        uri_prefix:         /files/offer
                        upload_destination: %kernel.root_dir%/../web/files/offer

                        inject_on_load:     false
                        delete_on_update:   false
                        delete_on_remove:   true

控制器:

            namespace AppBundle\Controller;

            use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
            use Symfony\Bundle\FrameworkBundle\Controller\Controller;

            class DefaultController extends Controller
            {
                /**
                 * @Route("/", name="homepage")
                 */
                public function indexAction()
                {
                    return $this->render('AppBundle:Home:index.html.twig');
                }

            }

@edit2 我不知道这很重要,但我在我的项目中使用了这个模板https://github.com/juliomatcom/charisma-symfony-php

4

1 回答 1

2

好的,我找到了解决方案。当我从这个存储库https://github.com/juliomatcom/charisma-symfony-php复制文件时,我没有注意到“视图”文件夹以大写字母开头。当我将其更改为“视图”时,一切正常。

感谢所有尝试帮助的人:)!

于 2015-05-20T19:51:14.710 回答