我正在使用Capifony部署我的Symfony应用程序.当Capifony执行assetic时:dump我得到一个运行时异常.
[RuntimeException]
Unable to write file
{path}/releases/20130314071536/app/../web/js/.
我尝试手动执行命令并获得相同的异常.
然后我使用–verbose参数尝试了该命令,并意识到所有文件的源路径都有一个点,其中没有文件名,只有扩展名.点击没有扩展名的文件名(在这种情况下为Makefile)并尝试写入文件“.”时出现异常. (只有一个点).
在同一台服务器上的另一个域上,我有完全相同的代码,但手动部署.在那里我没有得到这个错误.所以这对PHP版本来说不是问题.我还检查了Assetic和Assetic-Bundle版本,它们是相同的.
资产工作的原因可能是什么?
编辑:
我忘了提到它在我的开发机器上也能正常工作.
编辑2:
它开始失败的文件
编辑3:
我刚刚意识到它适用于开发环境……但是对于–env = prod它会产生问题
web/bundles/assets/assets/images/icons/aws.png
我没有在任何模板中使用的文件
Stacktrace出错了
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
config.yml
# 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 ( ),'pos' => '0',1 => '/js/assets/images/icons/arrow_rotate_clockwise_arrow_rotate_clockwise_1.png',114: '_assetic_e1ec2e3' => array ( 0 => array ( ),'name' => 'e1ec2e3',1 => '/js/assets/images/icons/aws.png',115 '_assetic_e1ec2e3_0' => array ( 0 => array ( ),1 => '/js/assets/images/icons/aws_aws_1.png',116 '_assetic_490c282' => array ( 0 => array ( ),'name' => '490c282',1 => '/js/assets/images/icons/cancel.png',... 874 '_assetic_13192a1' => array ( 0 => array ( ),'name' => '13192a1',1 => '/js/images/icons/arrow_rotate_clockwise.png',875 '_assetic_13192a1_0' => array ( 0 => array ( ),1 => '/js/images/icons/arrow_rotate_clockwise_arrow_rotate_clockwise_1.png',876: '_assetic_3d6d4c9' => array ( 0 => array ( ),'name' => '3d6d4c9',1 => '/js/images/icons/aws.png',877 '_assetic_3d6d4c9_0' => array ( 0 => array ( ),1 => '/js/images/icons/aws_aws_1.png',878 '_assetic_5ea17b1' => array ( 0 => array ( ),'name' => '5ea17b1',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','_route' => '_assetic_e1ec2e3',); 521 } ... 4327 4328 // _assetic_3d6d4c9 4329: if ($pathinfo === '/js/images/icons/aws.png') { 4330 return array ( '_controller' => 'assetic.controller:render','_route' => '_assetic_3d6d4c9',); 4331
编辑5:
根据@cheesemacfly的建议,我删除了hearsay_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,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