我已经通过具有访问build/index.html
的功能将Reactjs与Django集成在一起。以下代码显示了我的操作方法。
config / urls.py
urlpatterns = [
...
re_path(r'search/', react_views.ReactAppView.as_view()),
]
PROJECT_NAME / views.py
class ReactAppView(View):
def get(self, request):
try:
with open(os.path.join(str(settings.BASE_DIR), 'frontend', 'build', 'index.html')) as file:
return HttpResponse(file.read())
except:
return HttpResponse(
"""
Build your React app.
""",
status=501,
)
ReactAppView
函数访问index.html
,该yarn build
在React端由index.html
创建。基本上,我只将React用于搜索视图,而不是搜索视图,而是先使用jQuery开发的,然后使用jQuery。
由于我发现我需要Next.js才能在React中使用服务器端渲染(SSR),所以我一直在尝试将React应用程序迁移到Next.js。但是,Next.js没有pages/index.js
。它只是有// Type: SoftArtisans.OfficeWriter.ExcelWriter.Cell
// Assembly: SoftArtisans.OfficeWriter.ExcelWriter, Version=7.6.0.2814, Culture=neutral, PublicKeyToken=f593502af6ee46ae
// MVID: 86DFA65A-7B7D-4BDD-9BD7-A23DDE47DC04
// Assembly location: \Bin\SoftArtisans.OfficeWriter.ExcelWriter.dll
SoftArtisans.OfficeWriter.ExcelWriter.Cell.Formula
this.sheet.Cells[TheRow, 11].Formula = "=IFERROR( CHOOSE(L7,\"A1\",\"R2\",\"S3\",\"I4 R\",\"P R\",\"Snse ve\",\"Suspensr\",\"Deleted\",\"InMark\",\"Peng\",\"veyed\",\"veyed\"),\" \")";
this.sheet.Cells[TheRow, 12].Value = item["id"];
。
我已经非常努力地找出如何将Django与Next.js集成在一起,但是我找不到任何有用的资源。有人可以帮我吗?
答案 0 :(得分:1)
您似乎想提供静态文件(即React或Next.js捆绑包)。
Django提供了有关如何执行此操作的指南(通过django.contrib.staticfiles
)
最简单的示例(直接来自文档)是:
设置STATIC_FILES
文件夹:
STATIC_URL = '/static/'
将index.html
文件放在此处,并将其引用为/static/index.html
。
有关staticfiles
的更多信息,请参考官方文档:https://docs.djangoproject.com/en/2.1/howto/static-files/
在Next.js端,您需要遵循https://nextjs.org/#static-exporting上的示例,或者手动创建一个index.html
,其中包括您正在使用的所有next.js捆绑软件。