0

在服务器上部署我的 Symfony 应用程序后,我使用以下命令删除缓存:

sudo rm -rf app/cache

通常一切正常,但有时我会收到一条异常消息:

Cannot import resource
"/var/projectsssssss/src/Project/UserPanelBundle/Controller" from 
"/var/projectsssssss/src/Project/UserPanelBundle/Resources/config/routing.yml".

然后,我再次删除缓存,它一直在工作,直到下一次随机部署。我为路线使用注释。使用 ControllergenerateUrl方法时抛出异常这里是堆栈跟踪:

#0 /var/project/vendor/symfony/symfony/src/Symfony/Component/Routing/Loader/YamlFileLoader.php(75): Symfony\\Component\\Config\\Loader\\FileLoader->import('@UserPanelBundl...', 'annotation', false, '/var/projectsss...')
#1 /var/project/vendor/symfony/symfony/src/Symfony/Component/Config/Loader/FileLoader.php(75): Symfony\\Component\\Routing\\Loader\\YamlFileLoader->load('/var/projectsss...', NULL)
#2 /var/project/vendor/symfony/symfony/src/Symfony/Component/Routing/Loader/YamlFileLoader.php(75): Symfony\\Component\\Config\\Loader\\FileLoader->import('@UserPanelBundl...', NULL, false, '/var/projectsss...')
#3 /var/project/vendor/symfony/symfony/src/Symfony/Component/Config/Loader/DelegatingLoader.php(52): Symfony\\Component\\Routing\\Loader\\YamlFileLoader->load('/var/projectsss...', NULL)
#4 /var/project/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Routing/DelegatingLoader.php(57): Symfony\\Component\\Config\\Loader\\DelegatingLoader->load('/var/projectsss...', NULL)
#5 /var/project/app/cache/main/classes.php(1742): Symfony\\Bundle\\FrameworkBundle\\Routing\\DelegatingLoader->load('/var/projectsss...', NULL)
#6 /var/project/app/cache/main/classes.php(1451): Symfony\\Bundle\\FrameworkBundle\\Routing\\Router->getRouteCollection()
#7 /var/project/app/cache/main/classes.php(1400): Symfony\\Component\\Routing\\Router->getGenerator()
#8 /var/project/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php(45): Symfony\\Component\\Routing\\Router->generate('userpanel_apps', Array, false)
#9 /var/project/src/Project/UserPanelBundle/Controller/AppsController.php(26): Symfony\\Bundle\\FrameworkBundle\\Controller\\Controller->generateUrl('userpanel_apps', Array)
#10 [internal function]: Project\\UserPanelBundle\\Controller\\AppsController->indexAction()
#11 /var/project/app/bootstrap.php.cache(1426): call_user_func_array(Array, Array)
#12 /var/project/app/bootstrap.php.cache(1390): Symfony\\Component\\HttpKernel\\HttpKernel->handleRaw(Object(Symfony\\Component\\HttpFoundation\\Request), 1)
#13 /var/project/app/bootstrap.php.cache(1566): Symfony\\Component\\HttpKernel\\HttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#14 /var/project/app/bootstrap.php.cache(617): Symfony\\Bundle\\FrameworkBundle\\HttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)
#15 /var/project/web/app.php(28): Symfony\\Component\\HttpKernel\\Kernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request))
#16 {main}

我想缓存生成存在一些问题,但如何避免呢?

编辑

我的routing.yml

default:
    resource: "@UserPanelBundle/Controller"
    type:     annotation
4

2 回答 2

1

好的,我找到了问题所在。控制器类名称之一没有Controller后缀。@catchamonkey 看起来你是对的:)。

于 2013-04-12T07:02:24.377 回答
0

您实际上删除了缓存文件夹

sudo rm -rf 应用程序/缓存

它应该是

sudo rm -fr 应用程序/缓存/*

请尝试将 php 应用程序/控制台用于更好的事情。您甚至不必在其上使用 sudo

而另一个你需要重新创建文件夹并给出

sudo setfacl -R -mu:www-data:rwX -mu: whoami:rwX app/cache app/logs

sudo setfacl -dR -mu:www-data:rwx -mu: whoami:rwx app/cache app/logs

www 可能会根据您的 apache/nginx/其他网络服务器用户名而改变

于 2013-04-12T04:33:08.023 回答