【发布时间】:2015-11-02 18:18:24
【问题描述】:
我正在使用 Rake 创建一些构建脚本,这些脚本将用作通过 Docker 容器将我们的 Web 服务部署到云的整个过程的一部分。为了实现这一点,我们使用 Rake 组合来自多个 repos 的资源来“组装”目录/文件布局。除了一项,.htaccess 文件之外,这一切都很好。
这是我创建的复制功能:
require 'fileutils'
EXT_ALLOWED = ["html", "css", "js", "svg", "otf", "eot", "ttf", "woff", "jpeg", "map", "ico", "map", "png", "db", "php", "conf"]
def copy_to(dest, src, trim="")
files = FileList.new()
EXT_ALLOWED.each {|ext| files.include "#{src}/**/*.#{ext}"}
files.each do |file|
dir = File.dirname(file)
filename = File.basename(file)
trimming = "/shared/" + trim + "(.*)"
path = dir.match(trimming)
if path == nil || dest == path[1] + '/'
bin = dest
else
bin = File.join(dest, path[1] + '/')
end
puts "copying #{file} to #{bin}"
FileUtils.mkdir_p(bin)
FileUtils.cp file, bin
end
end
这个用法是:
desc 'copies from shared/admin to the base server directory'
task :admin do
# Copy admin over
dest = 'www-server/'
src = '../shared/admin'
trim = "admin/"
copy_to dest, src, trim
end
trim 变量用于确保将文件复制到适当的目录。在这种情况下,admin 中的文件会直接复制到 www-server,而没有 admin 子目录。
我天真地尝试将"htaccess" 添加到EXT_ALLOWED 数组中,但失败了。
我也在网上关注了一些项目,但大多数都与 Octopress 有关,并不能解决问题。
.htaccess 文件位于 ../shared/admin 中,需要以 www-server/ 结尾,我可以在此函数中实现吗?还是我需要专门为以点开头的文件名写一些东西?
【问题讨论】: