首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用React的HashRouter时从URL中删除静态/index.html?

如何在使用React的HashRouter时从URL中删除静态/index.html?
EN

Stack Overflow用户
提问于 2021-08-22 11:46:43
回答 2查看 509关注 0票数 2

我使用的是一个带有DRF后端的React前端,我在同一个URL上托管了这两个后端。我得到了前端的静态产品构建,我把它放在静态文件夹下,当一个人转到主contoso.com时,他们被重定向到contoso.com/static/index.html,在那里静态构建被服务,不同的URL可以正确地使用HashRouter和重新加载页面来访问,etc按预期工作,但是链接像contoso.com/static/index.html#homecontoso.com/static/index.html#menu等。我希望在主URL下面只有contoso.com/#homecontoso.com/#menu。这方面的API后端存在于contoso.com/api下。

附加信息:在IIS v10上托管的与带有静态文件夹的v10作为公共

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-22 13:53:58

首先,像这样从settings.py中修改模板代码

代码语言:javascript
复制
'DIRS': [
            os.path.join(BASE_DIR, '/static') #If index.html file is in static folder.
        ],

然后在project.urls.py

代码语言:javascript
复制
from django.urls import path
from django.views.generic import TemplateView

urlpatterns = [
   #...
    path('', TemplateView.as_view(template_name='index.html')),
]

现在,拔掉您在注释中共享的前一个视图,并使用这个URL从Reactive前端的构建中呈现index.html。

那这个就会按照你的意愿运作。example.com/#home

票数 1
EN

Stack Overflow用户

发布于 2021-08-22 13:40:46

能够在基本web.config文件的另一个路径下分离api (DRF)部分,然后使用index.html设置默认文档。因此,我认为最好的选择是将其移动到生产服务器上,以确保安全(在本例中为IIS)。

代码语言:javascript
复制
<handlers>
  <add name="Django FastCGI"
        path="api"
        verb="*"
        requireAccess="Script" />
</handlers>

<staticContent>
    <mimeMap fileExtension=".*" mimeType="text/html" />
</staticContent>

<defaultDocument>
    <files>
        <clear />
        <add value="index.html" />
    </files>
</defaultDocument>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68881004

复制
相关文章

相似问题

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