由于错误而导致的空白页"无法打开流"

时间:2015-10-08 12:16:14

标签: symfony heroku

我们正在尝试将我们的symfony项目部署到Heroku。 即使我们尝试访问时,构建也正确传递 项目页面我们只能看到一个空白页面。

Herolku日志显示:

  

PHP警告:   的file_get_contents(/tmp/build_7d6abc3e08fd2bf7205da28ab2e4181d/Path/to/home/home.html.twig):   无法打开流:没有这样的文件或目录   第131行/app/vendor/twig/twig/lib/Twig/Loader/Filesystem.php

我们已经尝试清除prod中的缓存。

有关信息,请参阅"脚本"我们的composer.json的一部分:

"scripts": {
    "post-root-package-install": [
        "SymfonyStandard\\Composer::hookRootPackageInstall"
    ],
    "post-install-cmd": [
        "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
    ],
    "post-update-cmd": [
        "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
    ],
    "compile": [
        "php app/check.php",
        "echo \"DELETING app_dev.php\"",
        "rm web/app_dev.php",
        "echo \"DELETING app/cache/*\"",
        "rm -rf app/cache/*",
        "composer install --no-dev --optimize-autoloader",
        "echo \"CACHE CLEAR\"",
        "app/console cache:clear --env=prod --no-debug",
        "echo \"CACHE WARMUP\"",
        "app/console cache:warmup --env=prod --no-debug",
        "app/console assetic:dump --env=prod --no-debug"
    ]}

我们正在使用symfony 2.7

感谢任何帮助。 感谢

2 个答案:

答案 0 :(得分:0)

对于未来参考,最终通过将每个捆绑包更新为 composer.son 中的最新版本来解决问题。

答案 1 :(得分:0)

对于那些仍然坚持解决它的人 -

我通过提供安装symfony资产的路径来解决这个问题

  

php app / console assets:安装 web --env = dev

在heroku中,资产默认安装在tmp文件夹中。 所以我必须专门告诉脚本将它们安装到web文件夹中。

以下是我的作曲家剧本

"scripts" : {
        "symfony-scripts" : [
            "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
        ],
        "post-install-cmd" : "@symfony-scripts",
        "post-update-cmd" : "@symfony-scripts",
        "compile" : [
            "php app/console assets:install web --env=dev",
            "php app/console assetic:dump web --env=dev",
            "rm -rf app/cache/*"
        ]
    },

希望这会有所帮助