rails / jsbundling-rails

Bundle and transpile JavaScript in Rails with esbuild, rollup.js, or Webpack.
MIT License
831 stars 144 forks source link

compute_asset_path does not update when using jsbundling + esbuild #106

Open michelson opened 2 years ago

michelson commented 2 years ago

Hello, I have a script that is accessed by clients via GET /embed.js, I have a controller that does the redirect to the precompiled asset, so it redirects to /embed-[the-hashed-id].js This works in production but in development environment the method ActionController::Base.helpers.compute_asset_path does return an old version hash on filename after a esbuild build. My workaround right now is to restart the server, then the hash changes correclty. This worked as expected with webpacker. the problem started when I've integrated esbuild with js-bundling

Any idea what could be the problem?

example controller:

  def show
    respond_to do |format|
      format.js { redirect_to widget_javascript_source }
    end
  end

  private

  def widget_javascript_source
    ActionController::Base.helpers.compute_asset_path("embed.js", debug: true)
  end
michelson commented 2 years ago

I'm seeing the same with ActionController::Base.helpers.asset_path("embed.js", debug: true) , it does not update the hash after a build.