gpt4 book ai didi

java - 使用 Dropwizard 提供多个静态资源

转载 作者:太空宇宙 更新时间:2023-11-04 09:02:51 24 4
gpt4 key购买 nike

我正在构建一个 React 应用程序并尝试使用 AssetBundle 提供服务,如下所示:

    @Override
public void initialize(final Bootstrap<PersonalWebsiteConfiguration> bootstrap) {
bootstrap.addBundle(new SwaggerBundle<PersonalWebsiteConfiguration>() {
protected SwaggerBundleConfiguration getSwaggerBundleConfiguration(final PersonalWebsiteConfiguration configuration) {
return configuration.swaggerBundleConfiguration;
}
});
bootstrap.addBundle(new AssetsBundle("/build", "/", "index.html"));
}

我还添加了配置

server:
rootPath: /api

这样就不会与我的 API 发生冲突。

这对于我的 React 应用程序的登陆页面非常有用。每当我尝试路线/login/dashboard 时,都找不到 UI 中的此页面。所以我尝试添加更多包来解决路由问题:

        bootstrap.addBundle(new AssetsBundle("/build", "/", "index.html"));
bootstrap.addBundle(new AssetsBundle("/build", "/login", "index.html"));
bootstrap.addBundle(new AssetsBundle("/build", "/dashboard", "index.html"));

现在,只有仪表板可以工作。有谁知道如何使用多个路由/页面来服务 React 构建。

最佳答案

对于单页应用程序,您需要每个客户端路由返回index.html(以支持浏览器重新加载或登陆除/之外的路径)据我所知,Dropwizard AssetBundle 无法做到这一点,即使用index.html 提供所有路由。查看类似(旧)question .

您可以自己实现 servlet 过滤器或使用一些社区插件,例如 this one .

我必须说另一种方法对我来说效果更好,根本不使用 dropwizard 来提供静态 Assets ,仅将其用作后端 API。对 API 和静态 Assets 使用 CDN 路由或不同的子域。这样,您就可以在 www.mydomain.com 上拥有静态 Assets ,在 api.mydomain.com 上拥有 API(或使用相同的域并基于路径前缀,例如/api 路由到后端或静态资源)

关于java - 使用 Dropwizard 提供多个静态资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60569880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com