小编Alv*_*ler的帖子

Django 在 AWS S3 中托管静态文件,在尝试访问管理字体文件时导致 CORS 错误

我将 Django 设置为将所有静态文件存储在 S3 上,并使用“collectstatic”命令复制所有管理文件,并且当我访问管理站点时,CSS 和 JS 文件均正确源自 S3 存储桶。例如:

https://bucket.s3.amazonaws.com/static/admin/css/base.css
https://bucket.s3.amazonaws.com/static/admin/js/vendor/jquery/jquery.js
Run Code Online (Sandbox Code Playgroud)

但是当它尝试访问字体文件 .woff 时,我收到以下错误:

Access to font at 'https://bucket.s3.amazonaws.com/static/admin/fonts/Roboto-Light-webfont.woff' from origin 'http://localhost:8000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Run Code Online (Sandbox Code Playgroud)

奇怪的是,它让我可以访问除字体文件之外的所有文件:

在此输入图像描述

django amazon-s3 django-admin django-rest-framework

11
推荐指数
2
解决办法
2512
查看次数

ReactJS 和 Redux Toolkit:我可以使用“createAsyncThunk()”来执行非异步副作用吗?

这是我的登录操作的样子并且工作正常:

export const login = createAsyncThunk(
'auth/login',
async (data, thunkAPI) => {
    const response = await API.login(data)

    //Store user data in local storage
    Storage.save('user', response.data)

    // Add token to HTTP headers
    API.setToken(response.data.key)

    return response.data
})
Run Code Online (Sandbox Code Playgroud)

现在我需要执行注销功能,但是当使用“createSlice()”时,我无法选择添加副作用,因为它直接进入减速器(Redux 文档说我们不应该向减速器添加任何副作用)

// Slice
const authSlice = createSlice({
    name: 'auth',

    initialState: {
        user: null
    },

    reducers: {
        // Logout
        logout: (state, action) => {
            state.user = null
        },

    },
    extraReducers: {
        [login.fulfilled]: (state, action)=>{
            state.user = action.payload
        },
    }
})
Run Code Online (Sandbox Code Playgroud)

所以我想我可以使用 createAsyncThunk 函数在它到达减速器之前执行副作用:

export const …
Run Code Online (Sandbox Code Playgroud)

reactjs redux redux-toolkit

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

Django - 使用 Easy Thumbnails 时,即使提供了带 alpha 的 PNG,如何强制字段将缩略图转换为 JPG

当使用 Easy Thumbnails 时,我知道您可以通过将其添加到您的 settings.py 来全局配置所有图像(甚至带有 alpha 的 PNG)以转换为 JPG

THUMBNAIL_TRANSPARENCY_EXTENSION = 'jpg'
Run Code Online (Sandbox Code Playgroud)

但问题是我不想强制所有模型中的所有图像都转换为 JPG,因为我有一些模型需要带有 alpha (png) 的图像。

我想要的是强制单个模型中的单个字段将所有图像转换为 JPG,无论它们是否是启用了 Alpha 的 PNG。

class Article(BaseModel):
    title = models.CharField(max_length=255, unique=True)
    image = ThumbnailerImageField(upload_to='blog/articles/image')
Run Code Online (Sandbox Code Playgroud)

我想要这个,因为很多人上传启用了 Alpha 的 PNG,这会阻止缩略图将它们压缩为 JPG,从而使许多缩略图保留为 PNG (500kb),而不是转换为 JPG (70kb)。

如何指定始终将这些文章图像转换为 JPG?

django django-rest-framework easy-thumbnails

5
推荐指数
1
解决办法
252
查看次数