Go言語のEchoで正しいMIMEタイプが設定されない問題の解消方法

LinuxMacOSでは,問題は起こりませんが, Windows上で,下記のようなコードを実行して,javascriptファイルを返すようにするとブラウザでMIMEタイプがtext/plainに設定されてしまいエラーが発生します.

e := echo.New()
// assets/js: javascriptファイルが格納されている.
e.Static("/assets", "static/assets")

実際のエラー文は,このようなものでした.

MIME タイプ (“text/plain”) が許可されていないため、“http://localhost:8080/assets/js/common.js” からのモジュールの読み込みがブロックされました。

なかなか検索しても解決方法は出てこないのですが,下記のIssueで解決方法が記載されていました. 紹介されている2つのどちらかを行うことでMIMEタイプが正しく設定されエラーを解消できます. https://github.com/labstack/echo/issues/1038#issuecomment-410294904

1. コードを追加する方法

コードを下記のように編集し,強制的にMIME Typeを上書きします.

mime.AddExtensionType(".js", "application/javascript")

e.echo.New()
// assets/js: javascriptファイルが格納されている.
e.Static("/assets", "static/assets")

2. レジストリを編集する方法

レジストリエディタを開いて,HKEY_CLASSES_ROOT/.jsContent-Typetext/plainからapplication/javascriptに書き換えることで正しいMIMEタイプが設定されるようになります.