air-verse / air

☁️ Live reload for Go apps
GNU General Public License v3.0
18.32k stars 815 forks source link

bug: live reload do not work for tmpl files #588

Closed arejula27 closed 5 months ago

arejula27 commented 6 months ago

I tried the new live reload feature with an existing project. Instead of using the go templates I use https://templ.guide/ as HTML engine. When modifying a tmpl file the web do not changed on the browser.

ndajr commented 6 months ago

Hi @arejula27, is air reloading when the tmpl file content changes? Are you accessing the proxy port? Can you send here your air version and your config file?

AslanSN commented 6 months ago

I have the same issue, I always have to reload the browser page to see the changes, but as far as I know this is an expected behaviour(?) Air version: 1.51.0 built with Go go1.22.2

ndajr commented 6 months ago

Two things could be happening: 1. you're not accesing the proxy port on the browser, try to inspect the html page and confirm that you see a script <script>new EventSource... before the end of the body tag. 2. air is proxying an old dangling process running in the background. To check this, stop running air, and see if you can access the app port. If you can access the app, you need to kill it and run air again. lsof -i :8080 (assuming the app port is 8080) and kill PID. See if you can access the app port, at this point you shouldn't. Then run air again and see if that fixes the issue

arejula27 commented 6 months ago

Hi @arejula27, is air reloading when the tmpl file content changes? Are you accessing the proxy port? Can you send here your air version and your config file?

Probably my issue is that i am not accessing the proxy.

root = "."
testdata_dir = "testdata"
tmp_dir = "tmp"

[build]
  args_bin = []
  bin = "./main"
  cmd = "make build"
  delay = 1000
  exclude_dir = ["assets", "tmp", "vendor", "testdata"]
  exclude_file = []
  exclude_regex = ["_test.go", ".*_templ.go"]
  exclude_unchanged = false
  follow_symlink = false
  full_bin = ""
  include_dir = []
  include_ext = ["go", "tpl", "tmpl", "html", "templ"]
  include_file = []
  kill_delay = "0s"
  log = "build-errors.log"
  poll = false
  poll_interval = 0
  post_cmd = []
  pre_cmd = []
  rerun = false
  rerun_delay = 500
  send_interrupt = false
  stop_on_error = false

[color]
  app = ""
  build = "yellow"
  main = "magenta"
  runner = "green"
  watcher = "cyan"

[log]
  main_only = false
  time = false

[misc]
  clean_on_exit = false

[screen]
  clear_on_rebuild = false
  keep_scroll = true

Executing the version flag:

  __    _   ___
 / /\  | | | |_)
/_/--\ |_| |_| \_ v1.52.0, built with Go go1.22.3
arejula27 commented 6 months ago

Yes, after adding

[proxy]
  enabled = true
  proxy_port = 3001
  app_port = 3000

This feature works

ndajr commented 6 months ago

@xiantang you can close the issue.

xiantang commented 5 months ago

@xiantang you can close the issue.

ok