fix: avoid removing double extension for non-preprocessor assets #301
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
Description 📖
This pull request makes some changes to ensure CSS filenames such as
jquery.tree.cssare not converted tojquery.treein theViteRuby::DevServerProxy.Background 📜
Historically,
stylesheet_link_tagin Rails did not support passingextnametoasset_path, causing it to always append.cssto any provided filenames.This is problematic in Vite, because the dev server can serve
file.scss.For that reason, the
DevServerProxyneeded to convert thatfile.scss.csstofile.css.Since it's very uncommon for CSS files to have two extensions, the naive approach of removing the extra
.csshasn't been a problem in practice, until #300.The Fix 🔨
Restricting this patch to files with a known CSS preprocessor extension. The regex is more verbose, but should cause less problems.
In addition, support for
extnamewas added in Rails 7, so in the future it will be possible to stop using this patch in the proxy.