【问题标题】:Symfony3: Developing in Windows, Deploying in Linux. DIRECTORY-SEPARATORSymfony3:在 Windows 中开发,在 Linux 中部署。目录分隔符
【发布时间】:2015-12-17 09:02:30
【问题描述】:

我有以下问题: 我在Win10下写了一个小主页。一切都很好,但是当我在 Linux 系统中部署我的工作时,我收到以下消息:

[2015-12-17 09:28:41] request.CRITICAL: Uncaught PHP Exception Twig_Error_Loader:
"The "/info/wwv/data/someone\vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views" directory does not exist."
at /info/wwv/data/someone/vendor/twig/twig/lib/Twig/Loader/Filesystem.php line 94 [...]

我认为 DIRECTORY_SEPARATOR 或类似的有一些问题。路径存在,当我用斜杠替换反斜杠时,我可以访问它。

我的日志也写在目录app\logs而不是真正的子目录app/logs

【问题讨论】:

  • 请提供源代码。

标签: linux directory symfony


【解决方案1】:

您是否在 Windows 上生成缓存并部署缓存而不是在 Linux 服务器上构建它?由于操作系统之间的差异,这确实不能正常工作。 最新版本的 Symfony 允许在部署之前构建缓存并将其复制到另一台服务器,但这不适用于一侧的 Windows 和另一侧的 Linux。

【讨论】:

    【解决方案2】:

    我遇到了类似的问题。有一天 symfony 3.4(在 php7.2.16 上)停止工作。将 AppKernel.php 中的一些路径设置从“/”更改为“\\”后,一切正常。

    例如

    public function getLogDir()
    {
       return dirname(__DIR__).'\\var\\logs';
    }
    

    这似乎是与路径设置有关的 Windows 相关问题。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,因为我的生产服务器没有让我分配足够的内存来运行 composer,我不得不在本地运行它。

      之后我遇到了类似的错误(对于 linux,访问路径错误 \ 而不是 /) 我采取的步骤:

      1. composer.jsoncomposer.lock 中将\\ 替换为/
      2. 清除var/cache/*

      【讨论】:

        猜你喜欢
        • 2013-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-17
        • 2011-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多