我正在build立Apache的开发环境。 我更喜欢将一个环境variables设置为本地签出的SVN修订版本号。 然后用PHP代码读取环境variables值,并将其放入外部JavaScript和CSS URL(作为caching)。 因此,每次我“svn”我的本地代码,我得到了更新的JavaScript和CSS URL相关的修订号。
例如,当前版本号是2314,并设置为$ _SERVER ['REVISION']。 PHP页面将读取这个$ _SERVER ['REVISION']并呈现外部JS链接,如http://www.example.com/2314/home.js 。 由于URL中存在版本号,如果本地修订版本更新,浏览器caching将被拆除以便于开发。
是否有可能在Apache中实现这一点?
谢谢,
-摩根
从阅读你的答案听起来这是一个客户端问题。 Subversion不支持客户端挂钩(从我所知道的),所以我会build议写一个类似于下面的小脚本来执行更新,并更新文件中的版本号。
#!/bin/bash svn update svn info | grep ^Revision | awk '{print $2}' > svn-revision
然后在你的php代码中,你可以读取版本号如下:
$SVN_REVISION = file_get_contents('/path/to/svn-revision');
我build议从文件中读取版本号,而不是从环境variables中读取。 确保您的当前环境与Apache所运行的环境相同并不容易。 这也确保了PHP代码中的修订号码在重新启动后仍然存在
你应该设置Subversion忽略svn-revision文件,所以你没有检查它。
svn propset svn:ignore svn-revision .