对不起,如果我听起来有点愚蠢.我很困惑这两个
virtualenv myvenv
和
-m venv myvenv之间的区别
第一个在创建虚拟环境时适合我,而另一个不适用.
我将CD放入我的开发目录并使用" virtualenv myvenv "并创建虚拟环境.但如果我使用" -m venv myvenv ",它只会出错.请帮我理解
我想使用 SvelteKit 构建一个 Web 应用程序,其中一页列出所有项目(带有潜在的搜索查询参数),然后一页列出每个单独的项目。如果我必须用后端生成的所有内容以老式方式构建它,我的路径将是/items/所有项目的列表以及/items/123item123等。也就是说,要转到 item 的页面123,链接将带有href="123"will无论您当前处于索引 ( /items/) 还是某一特定项目的页面 ( /items/[id]),都可以工作。
使用 SvelteKit,如果我创建文件routes/items/index.svelte和routes/items/[id].svelte,那么routes/items/index.svelte将有路径/items,没有尾部斜杠,因此 的链接href="123"将导致/123,导致“未找到”错误。
但是,该链接可以在单个项目的页面上使用,例如/items/456。
这与传统 HTML 模型中的情况截然不同,在传统 HTML 模型中,来自/items/(或/items/index.html) 的链接与来自 的链接的工作方式相同/items/[id].html。
现在,您可以设置svelte.config.js一个选项,使其对应于 path ,但随后有了 path ,我们又遇到了同样的问题:一个值无法同时在索引和单个项目的页面中工作。trailingSlashalwaysroutes/items/index.svelte/items/routes/items/[id].svelte/items/[id]/href
我现在看到的唯一方法是使用绝对路径,但它不是很可组合。我的猜测是我做错了什么。
我有一个 SvelteKit 应用程序运行在http://localhost:5173(进行本地开发时),前面有一个 Nginx 运行在http://localhost:8057,提供一些静态文件和代理请求,这些请求必须由 SvelteKit 处理。
我有一个登录表单,http://localhost:8057/login当我提交它时,我得到一个网页,其中只有“禁止跨站点 POST 表单提交”。
我尝试使用ORIGIN环境变量,按照禁止跨站点 POST 表单提交和https://kit.svelte.dev/docs/adapter-node#environment-variables。这是我的.env文件:
ORIGIN=http://localhost:8057
Run Code Online (Sandbox Code Playgroud)
env如果我从import { env } from '$env/dynamic/private';服务器端登录,我可以在我的环境中看到这个环境变量。但我仍然得到“禁止跨站点 POST 表单提交”。
我还尝试在启动 SvelteKit (使用 )时传递环境变量ORIGIN=http://localhost:8057 npm run dev,但结果相同。
因为 SvelteKit 在发送此错误时不会记录太多内容,所以我只能尝试猜测 SvelteKit 内部发生了什么,但如果在 Nginx 中我添加它,那么proxy_set_header Origin http://localhost:5173;它就可以工作,所以很清楚 SvelteKit 在这里期望什么。但我不想这样做,因为它几乎相当于禁用 CSRF 保护。
然后我尝试使用https://kit.svelte.dev/docs/adapter-node#environment-variables中建议的其他方法,即使用x-forwarded-proto和x-forwarded-host,所以现在这是我的.env文件(我再次可以肯定地看到如果我将这些值记录在我的应用程序中):
PROTOCOL_HEADER=x-forwarded-proto
HOST_HEADER=x-forwarded-host
ORIGIN=http://localhost:8057
Run Code Online (Sandbox Code Playgroud)
在我的 …
我已经tmux并且fish都通过aptUbuntu 19.04 (Disco Dingo) 安装。
tmux开箱即用bash,但它使用并且我希望它fish用作默认外壳。
因此,我将以下行放入~/.tmux.conf:
~$ cat .tmux.conf
set-option -g default-shell fish
Run Code Online (Sandbox Code Playgroud)
但随后tmux将不再启动,而是打印出奇怪的字符并死掉:
~$ tmux
[exited]
~$ [?65;1;9c
Run Code Online (Sandbox Code Playgroud)
(注意:奇怪的字符不是我输入的,它们最终出现在我的光标之前)
请注意,如果我删除~/.tmux.conf
(然后tmux开始使用 bash 并且运行良好),我可以通过fish从bash.
知道发生了什么以及我如何解决这个问题吗?
sveltekit ×2
cross-domain ×1
csrf ×1
fish ×1
href ×1
python ×1
svelte ×1
tmux ×1
virtualenv ×1