我在創造一些構建腳本,用耙的過程中,將用作經Docker容器雲部署我們的Web服務的整個過程的一部分。爲了實現這個目標,我們使用Rake將來自多個Repos的資源組合起來,以「組合」目錄/文件佈局。這一切都很好,除了一個項目,.htaccess文件。如何使用Rake複製.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/
結束了,我可以讓這個函數內發生的呢?還是我需要專門爲文件名開頭寫點東西?