3

这让我整个早上都发疯了。

我们正在使用 git 在多台机器上开发一个网站。

在大多数情况下,我们可以将我们的计算机设置为与开发服务器具有相同的设置。不幸的是,团队中的一个人在窗户上,它正在造成各种破坏。

我要解决的主要问题是:

在我正在使用的 .htaccess 文件中php_value auto_prepend_file default_roots.php

并且在编写自动前置语句时,我知道您必须使用您正在调用的文件的绝对路径。这就是导致问题的原因,Windows 机器上的绝对路径将不同于办公室中任何其他机器上的路径,它们都已设置为匹配。

解决我的问题的方法是能够将 .htaccess 中的 include_path 设置为 %{DOCUMENT_ROOT} 然后我可以将文件放在任何机器上的文档根目录中,并且文件的绝对路径总是正确的。

不幸的是,这看起来不可能(或者我希望我的语法错误,有人可以告诉我它是如何完成的)

我曾考虑在不同的机器和环境中编写不同的 .htaccess 文件,并使用 gitignore 来阻止它们相互干扰。这就是我开始的地方,但是让人们真正使用 gitignore 并阻止他们干扰似乎是一个问题,我不得不多次进入并修复它。在我看来,它也不太优雅。

所以我希望社区中的某个人能为我提供解决方案,因为我在这里发疯了。

干杯

4

1 回答 1

0

当涉及到使用 Git 时,尤其是在团队中,这一切都与工作流有关。这里有两个解决方案:

  1. 同意根设置:从技术上讲,如果您从 Web 服务器的根(例如:local.website.dev 或 localhost)运行 PHP 应用程序,您应该不会遇到问题,其中 .htaccess 文件将始终位于根。因此没有问题。

  2. 同意工作流程:有一种解决方法,不是.htaccess动态调用值,而是每次实际动态构建文件,并且在您的Git工作流程中,改为更新原始文件。

我刚刚为您的问题创建了一个小解决方案,.htaccess每次您签出主分支时都会生成一个新的解决方案。因此,在您的工作流程中,您可以在每个git pull.

您需要.htaccess在 PHP 中维护您的规则。所以这里是一个较小的团队合作挑战。但是问题解决了!

Github 上查看:mchebib/git-dyno-htaccess

或者直接跳进去:

$ git clone https://github.com/mchebib/git-dyno-htaccess.git
希望这对你有用。

干杯!

于 2015-05-11T06:33:42.503 回答