我对文档有点困惑,不确定我正在尝试做的事情是否可行。
目标:
例如:
mysite.com/posts/2我想我可以创建一个名为 html 的骨架文件posts.html,netlify 将所有posts/<id>请求重定向到该posts.html文件,然后该文件将显示骨架并通过 API 动态加载必要的数据。
我认为如果没有这个 netlify hack,根据他们的文档,我的静态导出 + 动态路由的工作链接的目标是不可能使用 next.js 的,因为fallback: true只有在使用 SSR 时才有可能。
问题:如何实现我梦想中的静态 nextjs 导出 + 动态路由的工作链接?
编辑:我刚刚发现了Redirects。它们可能是我问题的解决方案。
我有一个没有集成 api 的 NextJS 应用程序,我想将其部署到 Vercel。当我在本地运行它时它工作正常yarn run dev,我也可以在yarn run build没有任何错误的情况下构建它。但是,当我部署 Vercel 时,我收到一个404 Error.
这是我的文件夹结构:
app/
- components
- pages
- editor
- [id].tsx
...tsx
- public
- utils
- db
api.ts
Run Code Online (Sandbox Code Playgroud)
我正在使用 NextJs 10.0.3。
这是已部署应用程序的链接。
我没有 nextjs 配置文件。我的假设是错误是由动态路由引起的,但我找不到我的错误。此外,与仅动态页面相反,部署应用程序时没有页面在工作。
你有关于下一步去哪里的指示吗?
编辑 1:
这是 GitHub 存储库的链接。
编辑 2:我发现了一个问题,但不知道如何解决。
不知道为什么整个_next文件夹都不见了。
我想用 启动gunicorn >> gunicorn wsgi:app。
但我收到一条错误消息ModuleNotFoundError: No module named 'default_config. My virtuel env is activated. I spent hours on google but couldn't find an answer. Even hints are very much appreciated.
文件夹结构:
- App
- flask_app
- __init__.py
- factory.py
- default_config.py
- venv (virtual environment)
- wsgi.py
Run Code Online (Sandbox Code Playgroud)
__init__.py=> 为空
### wsgi.py ###
from flask_app.factory import create_app
app = create_app('development')
Run Code Online (Sandbox Code Playgroud)
。
### default_config.py ###
import os
basedir = os.path.abspath(os.path.dirname(__file__))
class Config:
SECRET_KEY = 'development key'
class …Run Code Online (Sandbox Code Playgroud) 我想我把事情搞砸了。
我一直认为:
- 1-step TD on-policy = Sarsa
- 1-step TD off-policy = Q-learning
因此我得出结论: - n-step TD on-policy = n-step Sarsa
- n-step TD off-policy = n-step Q-learning
然而,在 Sutton 的书中,他从未介绍过 n-step Q-Learning,但他确实介绍了 n-step off-policy Sarsa。现在我感到很困惑。
有人可以帮我命名吗?
链接到 Sutton 的书(第 149 页的 Off-Policy n-step Sarsa)
我在snake_case 中有一个数据对象,并且有一个使用snake_case 的数据库模式。我只想在数据库中创建一个新行。为了做到这一点,我必须首先序列化数据对象。不幸的是,当我使用默认的 fastAPI 序列化程序时,我总是返回一个驼峰命名法对象。当然,我可以使用另一个库将序列化的camelCase数据再次转换为snake_case,但必须有更简单的方法。
class CRUDPost(CRUDBase[Post, PostCreate, PostUpdate]):
def create(self, db: Session, obj_in: PostCreate, created_by: UUID4) -> Post:
logger.info(obj_in) // => obj in snake_case
obj_in_data = jsonable_encoder(obj_in, by_alias=True)
logger.info(obj_in_data) => obj in camelCase
db_obj = self.model(**obj_in_data, created_by=created_by)
db.add(db_obj)
db.commit()
db.refresh(db_obj)
return db_obj
Run Code Online (Sandbox Code Playgroud)
编辑:
Camelcase 中的对象:{'leetcodeSubmissions': 0, 'interviewTimeline': 0}
Snake_case 中的对象:{'leetcode_submissions': 0, 'interview_timeline': 0}