小编Har*_*wal的帖子

使用 go:embed 在 golang gin-gonic 中提供 React 静态文件,在前端 URL 上重新加载时出现 404 错误

我使用gin和 go1.17构建了一个 go 应用程序。

我正在使用go:embedto 为使用 React 构建的 SPA 应用程序提供静态内容。(尝试https://github.com/gin-contrib/static/issues/19中建议的方法)。我的前端文件位于构建文件夹中

build/index.html
build/asset-manifest.json
build/static/css/**
build/static/js/**
build/manifest.json
Run Code Online (Sandbox Code Playgroud)
//go:embed build/*
var reactStatic embed.FS

type embedFileSystem struct {
    http.FileSystem
    indexes bool
}

func (e embedFileSystem) Exists(prefix string, path string) bool {
    f, err := e.Open(path)
    if err != nil {
        return false
    }

    // check if indexing is allowed
    s, _ := f.Stat()
    if s.IsDir() && !e.indexes {
        return false
    }

    return true
}

func EmbedFolder(fsEmbed embed.FS, targetPath string, …
Run Code Online (Sandbox Code Playgroud)

embed go reactjs go-gin

7
推荐指数
1
解决办法
3776
查看次数

预加载功能在gorm中有什么作用?

链接http://gorm.io/docs/preload.html讨论了 GORM 中的预加载,但我无法理解此功能的作用。

type User struct {
  gorm.Model
  Username string
  Orders Order
}
type Order struct {
  gorm.Model
  UserID uint
  Price float64
}


db.Preload("Username")

db.Preload("Orders").Find(&users)

Run Code Online (Sandbox Code Playgroud)

有人可以解释这两个语句的作用吗?输出是什么?

preload是用来缓存结果的吗?

go go-gorm

6
推荐指数
1
解决办法
2764
查看次数

如何在 package.json 中使用同一节点依赖项的 2 个不同版本?

我正在开发一个 React js 应用程序,其中我使用Material-UI v5.0.0作为我的 UI 组件。此新版本将 @material-ui/* 前缀中的包名称替换为 @mui/*:

@material-ui/system -> @mui/system
@material-ui/styles -> @mui/styles
@material-ui/lab -> @mui/lab
Run Code Online (Sandbox Code Playgroud)

在我的项目中,我还使用另一个依赖项在一页上显示日历,该依赖项具有Material-UI v4.12.3的对等依赖项,该依赖项导入@material-ui/system.

我应该如何管理 package.json 中的依赖项,以便我可以在大部分 UI/UX 中使用 Material-UI v5.0.0,并且仍然能够仅针对特定的 UI 屏幕使用依赖项。

我应该 npm 安装 Material UI v5.0.0 和 v4.12.3 还是有更好的方法?

node.js npm reactjs package.json material-ui

3
推荐指数
1
解决办法
2184
查看次数

如何在golang的接口中添加新方法

我有一个 golang 接口我

type I interface {
    A()
    B()
}
Run Code Online (Sandbox Code Playgroud)

该接口是 的一个元素type S struct。现在我想向这个接口添加一个函数 C() ,它将被称为 S 类型的对象。但是这个接口由许多其他类型实现(例如:T)。在编译时,我收到一个错误为T does not implement C().

一种解决方法是在 T 中添加一个 C() 的虚拟实现,它只返回 T 的返回类型的值。

有没有更好的方法来做到这一点?

go

0
推荐指数
1
解决办法
5516
查看次数

标签 统计

go ×3

reactjs ×2

embed ×1

go-gin ×1

go-gorm ×1

material-ui ×1

node.js ×1

npm ×1

package.json ×1