@dan_farrell
В Go есть пакет compress
для работы с компрессией данных. Вы можете использовать этот пакет для компрессии js/css файлов.
Пример компрессии JS файла:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
package main import ( "compress/gzip" "io" "os" ) func main() { // Открываем исходный js файл file, err := os.Open("script.js") if err != nil { panic(err) } defer file.Close() // Создаем выходной gzip файл outFile, err := os.Create("script.js.gz") if err != nil { panic(err) } defer outFile.Close() // Создаем gzip writer gzWriter := gzip.NewWriter(outFile) defer gzWriter.Close() // Копируем данные из исходного файла в gzip writer _, err = io.Copy(gzWriter, file) if err != nil { panic(err) } } |
Пример компрессии CSS файла:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
package main import ( "compress/gzip" "io" "os" ) func main() { // Открываем исходный css файл file, err := os.Open("styles.css") if err != nil { panic(err) } defer file.Close() // Создаем выходной gzip файл outFile, err := os.Create("styles.css.gz") if err != nil { panic(err) } defer outFile.Close() // Создаем gzip writer gzWriter := gzip.NewWriter(outFile) defer gzWriter.Close() // Копируем данные из исходного файла в gzip writer _, err = io.Copy(gzWriter, file) if err != nil { panic(err) } } |
Эти примеры открывают исходный файл, создают gzip файл и копируют данные из исходного файла в gzip writer.