首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React和django缓存问题

React和django缓存问题
EN

Stack Overflow用户
提问于 2022-06-02 15:29:11
回答 2查看 89关注 0票数 0

我有一个react和django应用程序,它是在nginx后面服务的。/admin路由和/api路由都指向uwsgi。但是,在加载这些路由时,除非对页面进行硬刷新,否则将为react应用程序提供服务。反应似乎是为所有的路线服务,而不仅仅是索引。

是否有一种方法可以排除反应中的路由,所以只有当路径是"/“时才会显示,或者nginx/django配置中有什么东西我可以更改以克服这个问题。

这是我的nginx conf的一个片段:

代码语言:javascript
复制
    location / {
        try_files $uri $uri/ =404;
    }
    location /api/ {
        uwsgi_pass  uwsgi;
        include     /etc/nginx/uwsgi_params;
    }
    location /admin/ {
        uwsgi_pass  uwsgi;
        include     /etc/nginx/uwsgi_params;
    }

以及我的django urls配置:

代码语言:javascript
复制
urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/v1/', include(routers.urls))
]

任何关于我如何继续工作的想法将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2022-06-02 17:56:50

这听起来像是在拦截链接的onClick事件,并阻止浏览器正常地处理它。

您可以尝试更改链接标记,以防止它们做出反应:

代码语言:javascript
复制
<a href="/admin/" onClick={() => { location.href = "/admin/" }}>Admin</a>

/* Or if using react router */
<Link to="/admin/" onClick={() => { location.href = "/admin/" }}>Admin</Link>

是否有方法排除反应中的路由,以便只有当路径为"/"…时才会显示

如何在React中添加或配置路由?它们应该被更改为使用我上面所示的格式,或者如果您不希望它们显示的话,就删除它们。

…或者,nginx/django配置中有什么东西可以改变以克服这个问题。

您的nginx配置是正确编写的。你可以在这里测试一下

票数 2
EN

Stack Overflow用户

发布于 2022-08-18 22:21:50

我想我找到了解决办法。

1-将您的react脚本更新为^v4

2-添加您不希望缓存到service-worker.js文件的urls:

代码语言:javascript
复制
registerRoute(
   ({ request, url }) => {

      ...

      if (
         url.pathname.startsWith('/admin') ||
         url.pathname.startsWith('/api')
      ) {
         return false;
      }

      ...

      return true;
   },
   createHandlerBoundToURL(process.env.PUBLIC_URL + '/index.html')
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72478700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档