1. ホーム
  2. java

ローカルリソースのロードが許可されていない場合の解決策

2022-02-12 18:34:32

このエラーは、通常、プロジェクト外のリソース(画像、動画)を直接参照している場合です。

すると、ページが開き、次のような結果が表示されます。

直接アクセスを許可しないため、システム上のリソースにアクセスするための仮想パスを設定する必要があります。
tomcatコンテナの解決策

方法1.

tomcatのサービスインタフェースを開き、その下のModulesを選択し、Add Web Moduleを選択します。

2. 参照」を選択して、リソースディレクトリを選択し、パスを記入します。dドライブを選択し、dドライブの下にa.pngがある場合は、再度、<img src="/image/a.png"> を記述します。

方法2.

1. tomcatの設定ファイル( \confserver.xml) を探し、開きます。

2, 以下のコードを <host> と </host> の間に追加します: <Context path="/file" docBase="E:\test" debug="0" reloadable=& quot;true"/>] where: path はマップしたパス、docBase はファイルがあるパスです。

3、メソッドを呼び出す。[E:\test] の下に test.jpg 画像があります。

  [imgタグのsrcを"/file/test.jpg"に変更する] 。

使用したスプリングブート

内蔵のtomcatなので、上記のように直接選択することはできません。

設定クラスを書けばいいのです

    org.springframework.context.annotation.Configuration をインポートします。
    org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry をインポートしてください。
    org.springframework.web.servlet.config.annotation.WebMvcConfigurer.WebMvConfigurer をインポートします。
    コンフィギュレーション
    public class MyWebConfig implements WebMvcConfigurer { (パブリッククラスMyWebConfig) <未定義
        オーバーライド
        public void addResourceHandlers(ResourceHandlerRegistry registry) {... <未定義
            registry.addResourceHandler("/image/**").addResourceLocations("file:E:/uploadTool/result/") を追加しました。
        }
    }

ResourceHandler(/image/**)は上記のtomcat/imageと同じ、ResourceLocations("... ")は任意のシステムリソースディレクトリです。

ディレクトリの前にfileを付ける必要があります。

その後、tomcat で直接 <img src="/image/a.png"> を使用してください。