我刚刚从 Material-UI v4 升级到 v5(现在是 MUI)。如果我有一个DataGrid
组件和一个类似组件的组件Select
(aMenuItem
也有问题),则该Select
组件将无法正常工作。加载的一些附加样式会DataGrid
干扰它。
我将在此处展示的示例是,值不再是下拉列表,而是水平列出,全部粉碎在一起。请注意,DataGrid
此演示故意为空。
与预期的功能相反,如下所示:
我已将代码放在CodeSandbox上
请注意,它"@mui/x-data-grid": "^4.0.0"
依赖于"@material-ui/core": "^4.12.3"
. 我对此感到不舒服,但它确实将其列为依赖项(除非我在某个地方错过了某些东西)。
我是否遗漏了什么,或者我正在使用的最新版本是否存在错误DataGrid
?顺便说一句,我的实际应用程序中的所有功能都DataGrid
运行良好。
为了完整起见,我还将在此处包含代码:
import React from "react";
import { render } from "react-dom";
import { DataGrid } from "@mui/x-data-grid";
import Select from "@mui/material/Select";
import MenuItem from "@mui/material/MenuItem";
function App() {
return (
<div>
<Select>
<MenuItem value={10}>Ten</MenuItem>
<MenuItem value={20}>Twenty</MenuItem>
<MenuItem value={30}>Thirty</MenuItem>
</Select>
{/* with DataGrid, Select will shown …
Run Code Online (Sandbox Code Playgroud) 我想将版本号附加到 django 管理表单的 Media 类中定义的 javascript 文件。
class Media:
js = ['scripts/my_file.js?v=abc1234, ]
Run Code Online (Sandbox Code Playgroud)
但是...... url 被编码,以便“?” 变为“%3F”。
有没有办法让 django 不对 URL 进行编码?
附带说明一下,我这样做的原因是通过将以下内容放入我的设置文件中,在站点加载时获取静态文件的最后一次 git 提交:
STATIC_COMMIT = check_output(['git', 'log','-n', '1','--pretty=format:%h','--', os.path.join(BASE_DIR, 'my_app/static')]).decode("utf-8").strip()
Run Code Online (Sandbox Code Playgroud)
然后在 Media 类中使用以下内容:
js = [f'scripts/my_file.js?{settings.STATIC_COMMIT}', ]
Run Code Online (Sandbox Code Playgroud)
如果我能做到这一点,那么我将永远不必手动对媒体文件进行版本控制或要求用户刷新浏览器缓存,或者最糟糕的是从缓存运行错误的 javascript(或 css)文件。
我有一个可以在多种环境下运行的简单入口文件,但要访问它,它的行为会有所不同,具体取决于我是在 Mac 还是 Ubuntu 机器上运行 minikube 集群。
具体来说,对于我的 Mac,我必须将条目:添加
127.0.0.1 my.kube
到 /etc/hosts,并运行minikube tunnel
以便能够在浏览器中访问我的应用程序,网址为http://my.kube
。
但是,对于我的 Ubuntu 系统,我必须获取minikube ip
并将结果 IP 放入其中,/etc/hosts
例如192.168.49.2 my.kube
。然后我不需要运行minikube tunnel
。
虽然我可以看到每个的优点和缺点:
127.0.0.1
和 隧道消除了对 minikube ip 的依赖,如果删除并重新创建集群,这可能会发生变化(尽管已经进行了一些工作以使其持久化)。但是,我的问题是为什么事情的表现完全不同?
我已经在两个环境上启用了入口插件minikube addons enable ingress
。
当我检查入口创建的负载均衡器的主机名时,kubectl get ingress my-ingress -o yaml
我得到了相同的结果。我希望在使用 minikube IP 的情况下看到一个 IP(Ubuntu)。
....
status:
loadBalancer:
ingress:
- hostname: localhost
Run Code Online (Sandbox Code Playgroud)
再说一次,所有服务都已启动并运行良好,问题只是其中包含哪些内容/etc/hosts
以及是否minikube tunnel
正在运行。
另外,需要明确的是,我的 Ubuntu …