LinuxやMacOSでは,問題は起こりませんが, 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/.js
のContent-Type
をtext/plain
からapplication/javascript
に書き換えることで正しいMIMEタイプが設定されるようになります.