django应用程序静态文件在生产中不起作用

2024-04-01

即使对于管理页面,静态文件也无法在生产中运行。

我没有添加任何静态文件。

我的管理页面样式有问题。

我按照以下教程创建了 django 应用程序。

https://tutorial.djangogirls.org/en/ https://tutorial.djangogirls.org/en/

下面是我的settings.py

import os

# Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.0/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = '##############################'

# SECURITY WARNING: don't run with debug turned on in production! DEBUG = True

ALLOWED_HOSTS = ['127.0.0.1', '.pythonanywhere.com']


# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog', ]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware', ]

ROOT_URLCONF = 'new_p.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    }, ]

WSGI_APPLICATION = 'new_p.wsgi.application'


# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    } }


# Password validation
# https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    }, ]


# Internationalization
# https://docs.djangoproject.com/en/2.0/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.0/howto/static-files/

STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static')

我已经在生产中运行了collectstatic。

(master)$ python3 manage.py collectstatic

You have requested to collect static files at the destination location as specified in your settings:

    /home/ag/ag.pythonanywhere.com/new_p/static

This will overwrite existing files! Are you sure you want to do this?

Type 'yes' to continue, or 'no' to cancel: yes

0 static files copied to '/home/agusm/agusm.pythonanywhere.com/new_p/static', 119 unmodified.

我认为你的设置和跑步方式collectstatic很好。

如果您托管在任何地方的Python,我假设你是基于你的ALLOWED_HOSTS,你需要遵循本指南 https://help.pythonanywhere.com/pages/DjangoStaticFiles/:

设置静态文件映射

最后,设置静态文件映射,让我们的网络服务器为您提供静态文件。

转到 PythonAnywhere 仪表板上的 Web 选项卡 转到静态文件部分 在 url 部分中输入与 STATIC_URL 相同的 URL(通常为 /static/) 在路径部分输入从 STATIC_ROOT 开始的路径(完整路径,包括 /home/username/etc)

然后点击“重新加载”并通过检索已知的静态文件来测试您的静态文件映射。

例如,如果您在 /home/myusername/myproject/static/css/base.css 有一个文件,请访问http://www.your-domain.com/static/css/base.css http://www.your-domain.com/static/css/base.css

这基本上就是您通过设置网络服务器(nginx/apache,如普菲策的回答 https://stackoverflow.com/a/55399419/532471),但我认为它正在执行与通过 pythonanywhere 的 Web 界面设置目录别名相同的过程。

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

django应用程序静态文件在生产中不起作用 的相关文章

  • Python - 对象 MagicMock 不能在“await”表达式中使用

    当我尝试使用 MagicMock 在单元测试中模拟异步函数时 出现以下异常 类型错误 对象 MagicMock 不能在 await 表达式中使用 示例代码如下 source code class Service async def comp
  • 使用输入按钮处理网站上的分页

    试图使用硒抓取这个网站 我的代码可以工作 但目前它只抓取第一页 该页面使用输入按钮作为浏览页面的一种方式 因此我想逐个单击每个按钮 但它不起作用 有没有人有任何其他方法来处理此类分页的导航 import requests from sele
  • 使用 pyinstaller 将 Django 移植到桌面应用程序

    我正在尝试将 django 项目转换为桌面应用程序 我已经下载了 pyinstaller 的开发人员版本 github pyinstaller pyinstaller hookutils py 修改如下 http www pyinstall
  • 特定代码行的类似装饰器的语法

    链接主题 但不重复 装饰器对代码的特定行而不是整个方法进行计时 https stackoverflow com questions 30433910 decorator to time specific lines of the code
  • UnicodeDecodeError:“charmap”编解码器|安装 pip python-stdnum==1.8 时出错

    我对编程还很陌生 所以请耐心等待 当我为正在使用的模块安装一些必需的软件包时 我无法安装python stdnum 1 8 我收到以下错误消息 File C Users 59996 AppData Local Programs Python
  • Python daysBetweenDate

    我想我可能有一个无限循环 因为每当我运行代码时 我都会收到一条错误消息 它说 程序因使用 13 CPU 秒而关闭 整个代码 应该以日期作为输入并输出第二天 此代码假设所有月份都是 30 天 除了daysBetweenDates功能正常 其他
  • Django - 一个视图中的多个模型(表)

    操作系统 Windows10 Python 3 7 4 姜戈 2 1 我想展示这个模型 像这样在此输入图像描述 https i stack imgur com 2UERg jpg 但我不知道 我怎样才能做到这一点 我尝试了三个月来解决这个问
  • python 队列获取大小,使用 qsize() 还是 len()?

    我见过这样的例子qsize and len 已用于计算队列的大小 两者有什么区别 对于大多数容器 您需要len but Queue Queue实际上并不支持len 这可能是因为它很旧 或者因为在多线程环境中获取队列的长度并不是特别有用 无论
  • python-click:添加修改其他参数行为的选项

    这个问题是关于click http click pocoo org 5 包裹 Click 是一个用于创建漂亮命令行的 Python 包 使用尽可能少的代码以可组合的方式进行接口 它是 命令行界面创建工具包 它具有高度可配置性 但带有开箱即用
  • QFileDialog 作为 TableView 的编辑器:如何获取结果?

    我正在使用一个QFileDialog作为某些专栏的编辑QTableView 这基本上有效 对一些焦点问题取模 请参阅here https stackoverflow com questions 22854242 qfiledialog as
  • 如何在 Pandas 中将多列乘以一列

    我想拥有 df income 1 income 2 df mtaz proportion 返回这些列乘以df mtaz proportion 这样我就可以设置 df mtaz income 1 mtaz income 2 df income
  • 序列化 Django Rest 框架时的附加字段

    我是 django 休息框架的新手 并创建了一个示例Employee model My 模型 py class Employees models Model created models DateTimeField auto now add
  • 使用 pywin32com 进行 opc 的内存泄漏

    我很难弄清楚如何解决内存泄漏问题 我认为这可能是 pywin32 的问题 但我不完全确定 我用于读取 写入单个项目的代码似乎工作得很好 但是当使用组函数时 它会慢慢泄漏内存 我怀疑这是来自必须在 server handles 中传递的基于
  • 树莓派上的 /dev/mem 访问被拒绝

    我正在使用我的 Raspberry Pi 并且正在编写一个 cgi python 脚本 该脚本创建一个网页来控制我的 gpio 输出引脚 当我尝试将 RPi GPIO 作为 GPIO 导入时 我的脚本崩溃了 这是我收到的错误 File co
  • 使用不同的 CMD 名称同时运行多个 python 脚本

    我尝试通过 multiprocessing Process 在 test py 中同时调用 a py 和 b py 它起作用了 但过程CMDa py b py 和 test py 的名称相同 均为 usr bin python tmp te
  • 使用 scipy.io 将 python pandas dataframe 转换为 matlab 结构

    我正在尝试使用 scipy io 将 pandas 数据帧保存到 matlab mat 文件 我有以下内容 array1 np array 1 2 3 array2 np array a b c array3 np array 1 01 2
  • Python 和 Visual Studio Code - 如何在编辑器中运行特定文件?

    我正在使用 Visual Studio Code 和 Python 编写一个小型应用程序 我的应用程序有两个文件 Main py and MyCustomClass py Main py是应用程序的入口点 MyCustomClass py包
  • 在python中读取证书(.crt)和密钥(.key)文件

    因此 我使用 JIRA Python 模块连接到我公司的 JIRA 实例 它要求我为此传递证书和密钥 但是 使用 OpenSSL 模块 我无法读取本地证书和密钥来将其传递给请求 阅读代码如下 import OpenSSL crypto c
  • Django如何通过模板修改数据库记录

    我想删除我选择的记录 并且run html将会刷新 我该怎么做 由于我使用函数run在views py中发送数据库中的记录 以及run需要一个参数构建 可以通过使用获得run name 所以我认为当我单击提交按钮时 我需要传递 run na
  • 从 Python 脚本创建可执行文件,同时获取较小的输出大小

    我的问题可能已经在某个地方得到了解答 但我仍然找不到直接的答案 我想从 python 代码创建一个独立的可执行文件 我已经尝试过很多解决方案 例如py2exe pyinstaller等等 但我的问题是输出文件大小很大 例如 在pyinsta

随机推荐