私はthymeleafでスプリングブートを使用しています。すべてのリソースは、"/../../css/main.css"
のようなパス上のスプリングアプリケーションの外側にあります。 dev envでは、URLを使用してパスを解決し、パス上にlive envを実行します。springリソースハンドラが処理されない/../**
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
String templates=env.getProperty("spring.thymeleaf.prefix");
registry.addResourceHandler("/../../css/**")
.addResourceLocations(templates);
}
// spring.thymeleaf.prefix = http://website.com/assets/
なぜリソースハンドラは、リソースのこれらの種類を処理していないが、私"/**"
は問題なく処理している場合はどうなりますか?何か不足していますか?
編集:resourceHandler
は"/css/**"
で、場所はURLです
ありがとうございます。これは実際にライブサーバーでは機能しますが、開発者とテストでは、リソースにローカルでアクセスすることができず、httpにアクセスする唯一の方法なので、このアイデアをあきらめました。私は 'ResourceResolver'でurlでパスを修正して解決しようとしています。残念ながら、一致したリソースハンドラ( '/../../css/http:// website.com/assets /')からのパスを先読みしていて、 'ResourceResolver'からそれを削除する方法はありません。私はそのために何を上書きしなければならないか探し続けています – user2035693
あなたのリソースが外部リソースに置かれている場合、なぜこのリソースに対して 'CDN'のようなものを作成しなかったのですか?静的リソースとそれを参照する別のプロジェクトを作成します。 – sanluck
残念ながら、私は自分の望むことをするためにそのサーバーにアクセスすることはできません – user2035693