django 文件上传:[Errno 13] 权限被拒绝:'/static'

2024-01-24

我正在尝试在 django 中上传多个文件。在我使用 django 内置服务器的本地计算机上,一切正常,但在我的生产力服务器上,我收到此错误:

[Errno 13] Permission denied: '/static'

关于这个问题有很多问题,但我发现没有一个对我有用。 就我而言,它与文件权限无关。我发现问题是 django 想要将文件保存在我的文件系统的根文件夹中,而不是我的网站的根文件夹中。如果我在“/static”中创建文件夹,文件将在那里创建,但例如图像不会显示在网页上,因为 django 期望它们在“/var/www/webpage-root/static/...”中

我使用模型来存储文件:

class Document(models.Model):
    title = models.CharField(max_length=100, blank=True, null=False)
    document = models.FileField(upload_to='static/bachelor/documents/', max_length=500, blank=True, null=True)

并以这种方式保存它们:

if form.is_valid():
    data = request.FILES['document']
    doc = Document(document=data)
    doc.save()

正如那里所描述的:https://docs.djangoproject.com/en/dev/topics/http/file-uploads/ https://docs.djangoproject.com/en/dev/topics/http/file-uploads/

我使用 Apache 和 mod_wsgi。 apache 文件如下所示:

<VirtualHost *:80>
    ServerAdmin [email protected] /cdn-cgi/l/email-protection
    ServerName webpage.de
    ServerAlias www.webpage.de
    DocumentRoot /var/www/webpage

    Alias /media /var/www/webpage/webpage/
    Alias /static /var/www/webpage/static/

    <Directory /var/www/webpage>
        Order allow,deny
        Allow from all
    </Directory>

    WSGIScriptAlias / /var/www/webpage/apache/webpage.wsgi
    <Directory /var/www/webpage>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/webpage-error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/webpage-access.log combined
</VirtualHost>

我的网站的设置文件:

# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/var/www/example.com/media/"
MEDIA_ROOT = ''

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://example.com/media/", "http://media.example.com/"
MEDIA_URL = ''

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/var/www/example.com/static/"
STATIC_ROOT = ''

# URL prefix for static files.
# Example: "http://example.com/static/", "http://static.example.com/"
STATIC_URL = '/static/'

# Additional locations of static files
STATICFILES_DIRS = (
    '/var/www/website/static/',
    '/home/michael/Development/website/static/',
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
)

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    # 'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

我必须在 STATICFILES_DIRS 中设置两个不同的路径,因为我在服务器上提供静态文件时已经遇到问题。通过这两行,我可以在两端、我的开发机器和运行 apache 的公共服务器上提供静态文件。

我的配置中是否遗漏了某些内容或者有什么问题?我不知道为什么 apache 要在 /static 而不是 /var/www/website/static 中上传文件,但我认为这可能是因为我的 apache 配置有问题......

有人有想法或可以帮助我吗?

非常感谢


您上传媒体的 Apache 配置:

Alias /media /var/www/webpage/webpage/

与您的 Django 设置不同步:

# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/var/www/example.com/media/"
MEDIA_ROOT = ''

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://example.com/media/", "http://media.example.com/"
MEDIA_URL = ''

根据您的 Apache 配置,您应该有MEDIA_ROOT = '/var/www/webpage/webpage/' and MEDIA_URL = '/media/'.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django 文件上传:[Errno 13] 权限被拒绝:'/static' 的相关文章

随机推荐

  • Lawnchair .nuke() 在填满我的存储配额后无法工作

    我在用着草坪椅 http westcoastlogic com lawnchair 使用我的 Web 客户端 Firefox 13 0 的 dom 适配器 存储持久数据并已达到存储配额 Console log 说 Persistent st
  • 用于图像哈希的 Flutter 计算函数

    hii 我正在尝试实现计算功能 我正在尝试使用 image picker 插件通过相机单击图像 然后我试图获取图像文件的哈希摘要 由于它是一个非常密集的操作 我尝试使用计算功能但无法这样做 这就是我到目前为止所做的 final File p
  • Htaccess缓存问题

    这让我彻底疯了 我一直在这个新安装的服务器上使用 URL 重写来自定义 URL 但似乎我在 htaccess 中编写的任何 URL 重写规则都将永远被考虑在内 Example RewriteRule dashboard calendar c
  • Node.js 应用程序在 Heroku 上不断崩溃,并给出错误 Boot timeout

    我正在开发一个示例 node js 应用程序 它在本地运行良好 node index js 但是 当我将其推送到 Heroku 实例时 它崩溃并出现以下错误 2017 10 23T06 08 07 000000 00 00 app api
  • sqlalchemy 中的点类型?

    我在 Postgres 中发现了关于 Point 类型的信息 http www postgresql org docs current interactive datatype geometric html http www postgre
  • 如何序列化邮件消息?

    当尝试使用 los 格式化程序序列化 Gmail 消息时 我收到以下信息 错误 Sys WebForms PageRequestManagerServerErrorException 序列化 System Net Mail MailMess
  • 如果有多个iis服务器,如何实现SignalR?

    使用 SignalR 时是否支持 iis 节点集群 或者我需要一些第三方消息总线吗 还没有 但他们正在努力 计划发布 0 4 版本 准备就绪后 更多信息可能会在 wiki 中发布 SignalR 和 Webfarms http github
  • 在 Tab 单击事件上禁用 TabView 动画?

    我怎样才能禁用TabView动画时Tab in TabBar点击 我添加了 physics NeverScrollableScrollPhysics 对于 TabView 但不适用于 TabBar 我在用着DefaultTabControl
  • toLocaleDateString Javascript日期格式问题[重复]

    这个问题在这里已经有答案了 我有一个脚本 我想将日期格式化为短日期格式 即 2013 年 7 月 3 日或 2013 年 7 月 3 日 第一个日期格式的呈现方式与 Chrome 中的呈现方式类似 但其他浏览器则不然 它显示日期 月份名称和
  • 在多个程序集中定义的 System.Tuple

    我刚刚在 Windows 8 中安装了 VS 11 当我获得使用 VS 2010 构建的最新解决方案 然后构建它时 我收到此错误 在 VS 11 中 预定义类型 System Tuple 在多个程序集中定义 在全局别名中 使用 c Prog
  • 非全屏时保存 WebBrowser 控件截图

    我得到了 WebBrowser 控件中包含的网页的屏幕截图 正如所描述的那样here http www dreamincode net code snippet3389 htm and here https stackoverflow co
  • MySQL 错误:“列计数与第 1 行的值计数不匹配” - 初学者帮助

    基本上 使用的是 php 和 MySQL 我是初学者 我想做的是将用户注册到我的数据库中 因此将表单输入存储到我的 users tb 中 当我尝试将值插入表单时出现此错误 列计数与第 1 行的值计数不匹配 我认为这是因为我没有插入 user
  • Java:是否可以通过 Object(In|Out)putStreams 在阻塞 SocketChannel 上进行并发读取和写入?

    我创建了一个ObjectInputSteam and ObjectOutputStream在阻塞上SocketChannel我正在尝试同时读写 我的代码是这样的 socketChannel SocketChannel open destNo
  • Android:无法从 json 检索数据

    我从上一个活动到此活动获取某个事件的一个 id 并将该 id 传递到当前活动中的 url 以获取该 url 中存在的城市名称 我的代码是 String s getIntent getStringExtra ar try HttpPost h
  • 仅当“beforeunload”函数返回 true 时才运行 Javascript 代码

    当用户离开页面时 我使用 JQuery 捕获卸载事件 这工作得很好 但我只有在用户发生以下情况时才需要保存数据really想离开 这是我的第二十二条军规 如果我过早保存代码并且用户不想离开 那么我就破坏了支持代码的 Web 服务的状态 因此
  • Pandas:如何循环并删除列具有单个条目的行

    所以我有一个包含一定数量列的 pandas 数据框 下面是一个简单数据框的代码 但真正的数据框有超过 100 列 X pd DataFrame A Z A Z B Z columns COL1 COL2 我想要做的是遍历每一列并删除仅发生单
  • 使用位图进行 9830416 字节分配时内存不足

    我从资产文件夹中获取一些图像 但有一个例外 03 11 10 18 28 019 E dalvikvm heap 4052 Out of memory on a 9830416 byte allocation 我这里有这个错误 stream
  • Fortran 分配/解除分配

    我有以下问题 Fortran90 中分配 取消分配语句的实际开销是多少 即 在循环内分配几个中等大小的数组 例如 do i 1 1000 allocate tmp 20 tmp 1 20 1d0 call foo tmp deallocat
  • 小型 JavaScript 实现? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要一个极其微小的 Javascript 实现 也许是它的子集 代码大小和内存使用非常重要 速度不是问
  • django 文件上传:[Errno 13] 权限被拒绝:'/static'

    我正在尝试在 django 中上传多个文件 在我使用 django 内置服务器的本地计算机上 一切正常 但在我的生产力服务器上 我收到此错误 Errno 13 Permission denied static 关于这个问题有很多问题 但我发