简体   繁体   English

Symfony 5.2 错误:目录“var/cache/dev/jms_serializer”不存在

[英]Symfony 5.2 Error: The directory “var/cache/dev/jms_serializer” does not exist

Symfony 5.2 with jms/serializer-bundle 3.7.0. Symfony 5.2 与 jms/serializer-bundle 3.7.0。

After symfony cache cleaning by command cache:clear on the next request I get an error:在 symfony 缓存通过命令cache:clear下一个请求后,我得到一个错误:

The directory "var/cache/dev/jms_serializer" does not exist目录“var/cache/dev/jms_serializer”不存在

I noticed that for symfony 4.4 $dir variable has var/cache/de_/jms_serializer value, but for symfony 5.2 has var/cache/dev/jms_serializer我注意到对于 symfony 4.4 $dir 变量具有var/cache/de_/jms_serializer值,但对于 symfony 5.2 具有var/cache/dev/jms_serializer

So when symfony 5.2 runs warn up, JMSSerializerBundle creates jms_serializer folder in var/cache/dev instead of var/cache/de_因此,当 symfony 5.2 运行警告时,JMSSerializerBundle 在var/cache/dev而不是var/cache/de_中创建jms_serializer文件夹

serializer config:序列化器配置:

jms_serializer:
    visitors:
        xml_serialization:
        format_output: '%kernel.debug%'
    property_naming:
        id: 'jms_serializer.identical_property_naming_strategy'

Try to just remove cache directory.尝试仅删除缓存目录。

rm -rf var/cache

And create it with php user:并使用 php 用户创建它:

sudo su www-data // Login as php user
mkdir var/cache // create cache directory
chown -R $USER:$USER var/cache // Change owner of cache directory

where instead of www-data is the user which run your php.运行 php 的用户不是 www-data。

PS I am not fully sure, but there is no var/de directory neither for symfony, neither for serializer. PS我不完全确定,但 symfony 和序列化程序都没有var/de目录。 It is just an temporary directory created by symfony while clearing cache process, which is usually removed after successful finish它只是symfony在清除缓存过程中创建的一个临时目录,通常成功完成后会被删除

The problem is fixed in symfony 5.2.1该问题已在 symfony 5.2.1 中修复

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM