我正在逐步使用Capifony部署我的Symfony应用程序。当Capifony执行assetic:dump时,我得到一个运行时异常。
我尝试手动执行命令并获得相同的异常。
然后,我使用--verbose参数尝试了该命令,并意识到所有源路径中带有圆点的文件在写入时都没有文件名,只有扩展名。当击中没有扩展名的文件名(在这种情况下为Makefile)并尝试将文件写为“。”时,出现异常。 (仅一个点)。
在同一台服务器上的另一个域上,我具有完全相同的代码,但是是手动部署的。那里我没有得到这个错误。因此,PHP版本不会有问题。我还检查了Assetic和Assetic-Bundle版本,它们是相同的。
Assets 工作的不同原因可能是什么?
编辑:
我忘了提到它也可以在我的开发机器上正常工作。
编辑2:
文件开始失败
编辑3:
我只是意识到它对于开发环境可以正常工作...但是对于--env = prod,它会出现问题
我没有在任何模板中使用的文件
错误的堆栈跟踪
Exception trace:
() at /home/yanic.info/domains/pe.yanic.info/public_html/releases/20130318143912/vendor/symfony/assetic-bundle/Symfony/Bundle/AsseticBundle/Command/DumpCommand.php:249
Symfony\Bundle\AsseticBundle\Command\DumpCommand->doDump() at /home/yanic.info/domains/pe.yanic.info/public_html/releases/20130318143912/vendor/symfony/assetic-bundle/Symfony/Bundle/AsseticBundle/Command/DumpCommand.php:187
Symfony\Bundle\AsseticBundle\Command\DumpCommand->dumpAsset() at /home/yanic.info/domains/pe.yanic.info/public_html/releases/20130318143912/vendor/symfony/assetic-bundle/Symfony/Bundle/AsseticBundle/Command/DumpCommand.php:64
Symfony\Bundle\AsseticBundle\Command\DumpCommand->execute() at /home/yanic.info/domains/pe.yanic.info/public_html/releases/20130318143912/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:238
Symfony\Component\Console\Command\Command->run() at /home/yanic.info/domains/pe.yanic.info/public_html/releases/20130318143912/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:192
Symfony\Component\Console\Application->doRun() at /home/yanic.info/domains/pe.yanic.info/public_html/releases/20130318143912/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:78
Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /home/yanic.info/domains/pe.yanic.info/public_html/releases/20130318143912/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:105
Symfony\Component\Console\Application->run() at /home/yanic.info/domains/pe.yanic.info/public_html/releases/20130318143912/app/console:33
配置文件
# Twig Configuration
twig:
debug: %kernel.debug%
strict_variables: %kernel.debug%
form:
resources: [HomeBundle:Form:fields.html.twig]
# Assetic Configuration
assetic:
write_to: "%kernel.root_dir%/../web"
debug: %kernel.debug%
use_controller: false
bundles: ['YanicSecurityBundle','HomeBundle','UsersBundle','CmsBundle','AssetsBundle','FormBundle','TranslationBundle','EventBundle','ShopBundle','NewsletterBundle','IssueBundle','ProjectBundle']
filters:
cssrewrite: ~
编辑4:
搜索aws.png(第一个要破坏的结果)时,缓存文件中有2个结果:
/Applications/MAMP/htdocs/symfony-standard-2.1/app/cache/dev/appDevUrlGenerator.php:
112 '_assetic_e4d7f8d' => array ( 0 => array ( ), 1 => array ( '_controller' => 'assetic.controller:render', 'name' => 'e4d7f8d', 'pos' => NULL, '_format' => 'png', ), 2 => array ( ), 3 => array ( 0 => array ( 0 => 'text', 1 => '/js/assets/images/icons/arrow_rotate_clockwise.png', ), ),),
113 '_assetic_e4d7f8d_0' => array ( 0 => array ( ), 1 => array ( '_controller' => 'assetic.controller:render', 'name' => 'e4d7f8d', 'pos' => '0', '_format' => 'png', ), 2 => array ( ), 3 => array ( 0 => array ( 0 => 'text', 1 => '/js/assets/images/icons/arrow_rotate_clockwise_arrow_rotate_clockwise_1.png', ), ),),
114: '_assetic_e1ec2e3' => array ( 0 => array ( ), 1 => array ( '_controller' => 'assetic.controller:render', 'name' => 'e1ec2e3', 'pos' => NULL, '_format' => 'png', ), 2 => array ( ), 3 => array ( 0 => array ( 0 => 'text', 1 => '/js/assets/images/icons/aws.png', ), ),),
115 '_assetic_e1ec2e3_0' => array ( 0 => array ( ), 1 => array ( '_controller' => 'assetic.controller:render', 'name' => 'e1ec2e3', 'pos' => '0', '_format' => 'png', ), 2 => array ( ), 3 => array ( 0 => array ( 0 => 'text', 1 => '/js/assets/images/icons/aws_aws_1.png', ), ),),
116 '_assetic_490c282' => array ( 0 => array ( ), 1 => array ( '_controller' => 'assetic.controller:render', 'name' => '490c282', 'pos' => NULL, '_format' => 'png', ), 2 => array ( ), 3 => array ( 0 => array ( 0 => 'text', 1 => '/js/assets/images/icons/cancel.png', ), ),),
...
874 '_assetic_13192a1' => array ( 0 => array ( ), 1 => array ( '_controller' => 'assetic.controller:render', 'name' => '13192a1', 'pos' => NULL, '_format' => 'png', ), 2 => array ( ), 3 => array ( 0 => array ( 0 => 'text', 1 => '/js/images/icons/arrow_rotate_clockwise.png', ), ),),
875 '_assetic_13192a1_0' => array ( 0 => array ( ), 1 => array ( '_controller' => 'assetic.controller:render', 'name' => '13192a1', 'pos' => '0', '_format' => 'png', ), 2 => array ( ), 3 => array ( 0 => array ( 0 => 'text', 1 => '/js/images/icons/arrow_rotate_clockwise_arrow_rotate_clockwise_1.png', ), ),),
876: '_assetic_3d6d4c9' => array ( 0 => array ( ), 1 => array ( '_controller' => 'assetic.controller:render', 'name' => '3d6d4c9', 'pos' => NULL, '_format' => 'png', ), 2 => array ( ), 3 => array ( 0 => array ( 0 => 'text', 1 => '/js/images/icons/aws.png', ), ),),
877 '_assetic_3d6d4c9_0' => array ( 0 => array ( ), 1 => array ( '_controller' => 'assetic.controller:render', 'name' => '3d6d4c9', 'pos' => '0', '_format' => 'png', ), 2 => array ( ), 3 => array ( 0 => array ( 0 => 'text', 1 => '/js/images/icons/aws_aws_1.png', ), ),),
878 '_assetic_5ea17b1' => array ( 0 => array ( ), 1 => array ( '_controller' => 'assetic.controller:render', 'name' => '5ea17b1', 'pos' => NULL, '_format' => 'png', ), 2 => array ( ), 3 => array ( 0 => array ( 0 => 'text', 1 => '/js/images/icons/cancel.png', ), ),),
/Applications/MAMP/htdocs/symfony-standard-2.1/app/cache/dev/appDevUrlMatcher.php:
517
518 // _assetic_e1ec2e3
519: if ($pathinfo === '/js/assets/images/icons/aws.png') {
520 return array ( '_controller' => 'assetic.controller:render', 'name' => 'e1ec2e3', 'pos' => NULL, '_format' => 'png', '_route' => '_assetic_e1ec2e3',);
521 }
...
4327
4328 // _assetic_3d6d4c9
4329: if ($pathinfo === '/js/images/icons/aws.png') {
4330 return array ( '_controller' => 'assetic.controller:render', 'name' => '3d6d4c9', 'pos' => NULL, '_format' => 'png', '_route' => '_assetic_3d6d4c9',);
4331
编辑5:
按照@cheesemacfly的建议,我删除了listensay_require_js捆绑包,问题解决了。现在,我知道应该为错误负责,现在,我需要知道为什么它仅在登台服务器上以及在使用Capifony进行部署时才会发生。
最佳答案
尝试重新创建缓存目录。
当缓存不同步时,您会得到各种奇怪的行为。
要清除缓存:
rm -rf app/cache/*
sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" app/cache
sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache
或者
rm -rf app/cache/*
sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX app/cache
sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache