标签: static-files

我应该将图像上传到Django中的静态目录吗?

我有这个包含图像字段的模型.

from django.db import models
from django.contrib.auth.models import User


class Customer(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=127)
    logo = models.ImageField(upload_to='customer/logo', null=True, blank=True)

    def __str__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

在我看来,我从指定的URL下载图像并将其存储在图像字段中.为了测试,我使用测试用户作为外键.

import json
import urllib.request

from django.core.files.base import ContentFile
from django.http import HttpResponse
from django.contrib.auth.models import User

from customer.models import Customer


def create(request):
    values = json.loads(request.body.decode('utf-8'))
    values['user'] = User.objects.get(id=1)
    values['logo'] = ContentFile(urllib.request.urlopen(values['logo']).read(),
                                                                    'test.png')
    model = Customer.objects.create(**values)
    return HttpResponse('Created customer with ' + str(values))
Run Code Online (Sandbox Code Playgroud)

图像customer/logo/test.png按预期上传.现在,我如何在前端显示这些图像?我可以将它们保存到静态文件目录中,但只有相关用户才能访问它.

(顺便说一句,Django管理界面显示有一个文件为该Customer对象上传.但它链接到http://localhost:8000/admin/customer/customer/20/customer/logo/test.png一个错误的位置,并导致一个未找到的页面.)

python django permissions file-upload static-files

2
推荐指数
1
解决办法
4102
查看次数

Nginx 静态文件服务 10Gbps 服务器的性能问题

我正在使用 Nginx 在专用服务器上提供静态文件。该服务器没有网站,它只是一个文件下载服务器。文件大小范围从 MB 到 GB。

以前,我在 unmetered.com 上有 8 个速度为 500 Mbps 的专用服务器。他们每个人的表演都很棒。

我想从 FDCServers 购买 10Gbps 服务器。因为一台服务器比多台服务器更容易管理。

以下是服务器的规格:

双 Xeon E5-2640(15M 高速缓存,2.50 GHz,7.20 GT/s Intel® QPI) - 24 核 128 GB RAM 10 Gbit/s 网络未计量 Ubuntu 14.04 LTS 1.5 TB SATA

但是我的新巨型服务器的速度没有超过 500 到 600 Mbps。我安装了 nload 来监控流量和上传/下载速度。它的报告几乎与之前的 unmetered.com 服务器相同。

然后我想可能是由于SATA硬盘的读取速率限制。

所以我在新的强大服务器中购买并安装了 3 X 240 GB SSD 驱动器。

我将文件移动到 SSD 驱动器并下载它以进行测试。速度还是不行。我只有 250 到 300 Kbps。而它应该给我至少 2Mbps(这是我放置在 Nginx 配置文件中的每个 IP 的速度限制)。

然后我搜索了千兆以太网调整设置。发现需要针对 10Gbps 网络调整的几个 sysctl 设置。

http://www.nas.nasa.gov/hecc/support/kb/Optional-Advanced-Tuning-for-Linux_138.html

我实现了它们,但吞吐量仍然与我以前的 500Mbps …

performance nginx static-files sysctl dedicated-server

2
推荐指数
1
解决办法
3653
查看次数

在heroku上使用nested_inline时,在collectstatic期间发生Django错误

我正在尝试部署一个在heroku 实例上使用nested_inline 的django 应用程序。本地一切都运行良好,但我在收集静态期间在heroku服务器上遇到错误。

我按照heroku指南来让一个最小的django设置工作起来。然后我将“django-nested-inline”添加到我的requirements.txt中,将“nested_inline”添加到我的INSTALLED_APPS的末尾,并将“fromnested_inline.admin import NestedModelAdmin, NestedStackedInline”添加到我的admin.py中。

一切仍然在本地完美运行,没有任何问题。但是当我推送到heroku“git push heroku master”时,出现以下错误:

$ git push heroku master
Counting objects: 7, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 670 bytes | 0 bytes/s, done.
Total 7 (delta 5), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Python app detected
remote: $ pip install -r requirements.txt
remote: Collecting django-nested-inline (from -r …
Run Code Online (Sandbox Code Playgroud)

django heroku static-files django-deployment

2
推荐指数
1
解决办法
1537
查看次数

节点JS不提供静态图像

我已经在节点服务器上添加了用于提供图像的代码,但在连接到Node时似乎没有在HTML中提供图像.我还有正确提供的外部CSS和JS.这是Node中代码的片段(见下文).先感谢您!

var server = http.createServer(function(req, res) {
    var pathname = url.parse(req.url).pathname;
    var ext = path.extname(pathname);
    var handler = handlers[req.url];
    if(ext) {
        if(ext === ".css"){
            res.writeHead(200, { "Content-Type" : "text/css" });
        }
        else if(ext === ".js") {
            res.writeHead(200, { "Content-Type" : "text/javascript" });
        }
        else if(ext === ".jpg") {
            res.writeHead(200, { "Content-Type" : "image/jpg" });
        }
        res.write(fs.readFileSync(__dirname + pathname, "utf8"));
        res.end();
    }
    else if(handler) {
        handler(req, res);
    }
    else {
        res.writeHead(404, { "Content-type" : "text/plain" });
        res.end();
    }
});
server.listen(80);
Run Code Online (Sandbox Code Playgroud)

html javascript static-files node.js

2
推荐指数
1
解决办法
3523
查看次数

如何从 ASP.NET Core 的静态文件中排除文件夹?

我有一个文件夹"wwwroot",在返回静态文件时不想包含在该文件夹下。

我想返回"wwwroot"(例如"wwwroot/images")下的各种目录,这个中间件步骤可以实现:

app.UseStaticFiles(); 
Run Code Online (Sandbox Code Playgroud)

我可以通过它StaticFileOptions来配置返回的内容。

我想排除一个目录(例如"wwwroot/node_modules")并且不允许从中提供任何 statif 文件。

似乎没有我可以使用的过滤器StaticFileOptions- 我应该如何应用该过滤器?

static-files asp.net-core asp.net-core-middleware

2
推荐指数
1
解决办法
1996
查看次数

即使 nginx 正在提供静态文件,Django 管理也没有 css

我知道有很多类似的问题,但我找不到适合我的情况:

我在单个 docker 容器中使用 django (2.1.7) 以及gunicorn 和 nginx(我们在工作中使用的基础设施的要求),但在管理菜单上遇到了问题。当本地执行并访问http://localhost:8080/admin/页面时,无需使用 css 即可呈现页面。

经过一番挖掘,我发现 nginx 实际上是在提供文件服务。例如,我可以http://localhost:8080/static/admin/css/base.css在浏览器中访问并加载相关文件。我的静态目录也BASEDIR包含所有预期的文件......

我不知道如何继续进一步调查。所有相关问题的配置似乎都有缺陷STATIC_ROOT,忘记了collectstatic命令或误用alias了 nginx 配置中的命令。所有这些似乎都对我有用......

我觉得我错过了一些非常基本的东西。你们有人有想法吗?感谢您的帮助!

下面是我的配置文件 settings.py::

"""
Django settings for mysite project.

Generated by 'django-admin startproject' using Django 2.1.7.

For more information on this file, see
https://docs.djangoproject.com/en/2.1/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/2.1/ref/settings/
"""

import os

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = …
Run Code Online (Sandbox Code Playgroud)

python django nginx static-files docker

2
推荐指数
1
解决办法
3244
查看次数

如何在 Blazor 应用程序中加载 .gltf

我正在尝试使用 Three.js 将 .gltf 模型加载到我的 Blazor 应用程序中。 在此处输入图片说明 但是,服务器不提供此类文件。 在此处输入图片说明 我知道必须添加 MIME 类型,但由于某些原因,无法使用 Blazor Web 应用程序完成此操作,因为 Startup.cs 中的“app”变量是IComponentsApplicationBuilder. 任何人都可以帮助我解决这个问题。

static-files three.js gltf blazor

2
推荐指数
1
解决办法
1668
查看次数

提供媒体文件,不提供静态文件

我坚持因 常绿 问题,静态文件没有送达.相反,放置在MEDIA_ROOT子树中的文件可以正确地提供MEDIA_URL.

剥离settings.py:

DEBUG = True
STATIC_URL = '/static/'
STATIC_ROOT = '/home/foo/devel/static'
MEDIA_URL = '/media/'
MEDIA_ROOT = '/home/foo/devel/media'
# the following is deprecated but is it seems grappelly requires it
ADMIN_MEDIA_PREFIX = STATIC_URL + "grappelli/"
STATIC_FILES = ()
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
Run Code Online (Sandbox Code Playgroud)

为了创建我做的项目:

$ cd /home/foo/devel/
$ virtualenv testdrive
$ . bin/activate; pip install django; cd testdrive
$ django-admin.py fbtest
Run Code Online (Sandbox Code Playgroud)

并获得此目录树(剥离):

. <-- /home/foo/devel/
??? bin
??? fbtest
? …
Run Code Online (Sandbox Code Playgroud)

django static-files django-staticfiles

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

无法获取nginx来提供收集的静态文件

我想让nginx和gunicorn一起工作.我有一个/project/static/静态文件所在的目录./project/livestatic/使用显示的settings.py配置将这些文件收集到目录中:

STATIC_ROOT = '/project/livestatic'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    '/project/static',
)
Run Code Online (Sandbox Code Playgroud)

我正在使用以下nginx配置:

worker_processes 1;
user nobody nogroup;
pid /tmp/nginx.pid;
error_log /tmp/nginx.error.log;

events {
    worker_connections 1024;
    accept_mutex off;
}

http {
    include mime.types;
    default_type application/octet-stream;
    access_log /tmp/nginx.access.log combined;
    sendfile on;

    upstream app_server {
        server 127.0.0.1 fail_timeout=0;
    }

    server {
        listen 80 default;
        client_max_body_size 4G;
        server_name domain.org;

        keepalive_timeout 5;

        # path for static files
        location /static/ {
            autoindex on;
            root /var/www/startupsearch_live/livestatic/;
        }

        location / { …
Run Code Online (Sandbox Code Playgroud)

django nginx static-files gunicorn

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

nginx静态图像后备

我使用nginx 1.6.2来提供文件夹中的静态图像.如果存在或回退到默认图像,我需要提供所请求的文件.

我有这个位置块

location /test/img/ {
    rewrite  ^/test/img/(.*)  /$1 break;
    root   /path/to/folder/images;
    try_files $uri /default.jpg;
}
Run Code Online (Sandbox Code Playgroud)

"/ path/to/folder/images"文件夹包含2个文件:image1.jpg和default.jpg.如果我请求现有图像,则一切正常.例如,如果我在这个网址上进行GET

<host_name>/test/img/image1.jpg
Run Code Online (Sandbox Code Playgroud)

我可以看到正确的图像,但如果我搜索未知图像,我有404响应.从error.log文件中我可以看到此错误:

[error] 18128#0: *1 open() "/etc/nginx/html/default.jpg" failed (2: No such file or directory)
Run Code Online (Sandbox Code Playgroud)

为什么nginx在该文件夹中搜索default.jpg?我希望在位置块的根目录中搜索该文件.我尝试使用绝对路径没有成功.提前致谢.

fallback nginx static-files

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