Применение изменений к приложению vue, выполненному GO - PullRequest
0 голосов
/ 05 ноября 2018

Я использовал Go, чтобы создать очень простое веб-приложение с одной веб-страницей. В этом проекте я использовал Vue CLI для установки веб-пакета. Если я запускаю приложение vue по npm, все в порядке и работает отлично, но я хочу, чтобы при работе с веб-приложением я работал с vue. Для этого я собрал vue-проект с помощью npm 'npm run build' и получил каталог dist, после чего в приложении go я написал что-то вроде этого:

func main() {
    http.Handle("/static/", http.FileServer(http.Dir("web-vue/dist")))

    http.HandleFunc("/", HomePage)
    http.ListenAndServe(":8080", nil)
}

func HomePage(w http.ResponseWriter, r *http.Request){
    t, err := template.ParseFiles("web-vue/dist/index.html")
    if err != nil {
        log.Print("template parsing error: ", err)
    }
    err = t.Execute(w,"SerGorn")
    if err != nil {
        log.Print("template executing error: ", err)
    }
}

Работает нормально, за одним исключением, когда я изменяю файл .vue, для применения этих изменений снова требуется перестроить приложение по npm. Как я мог решить эту проблему? Любая идея? Или, может быть, это неправильно и лучше, если работа с vue будет осуществляться только в node.js?

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Исходные файлы .vue должны быть обработаны, чтобы веб-сервер обслуживал их как HTML. Вы не можете изменять файлы .vue и ожидаете увидеть изменения в веб-браузере, работающем на рабочем веб-сервере. Таким образом, после изменений вы должны запустить npm run build, который будет обрабатывать файлы .vue и генерировать действительные файлы HTML в /dist.

Теперь, просматривая ваш код, я вижу, что вы могли бы еще больше упростить его, сделав следующее:

func main() {
    http.Handle("/static", http.FileServer(http.Dir("web-vue/dist/")))
    http.Handle("/", http.FileServer(http.Dir("web-vue/dist/")))
    http.ListenAndServe(":8080", nil)
}
0 голосов
/ 05 ноября 2018

Вы можете использовать vue с любым бэкэндом. Похоже, FileServer или ваш браузер кэширует ваши статические файлы. Вы можете использовать заголовок Cache-Control: no-cache, чтобы избежать кэширования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...