【发布时间】:2021-07-31 01:00:41
【问题描述】:
您好,我正在尝试在 Google 应用引擎上部署 django 应用。我的 Django 应用程序在本地运行良好,但在谷歌应用程序引擎中它无法运行。我检查并发现问题出在我的静态文件上。我的静态文件没有加载到应用引擎中。
********.appspot.com/static/youtube/about.css
Not Found
The requested resource was not found on this server.
这两天我试图在各种论坛上关注答案,但没有一个对我有用。我的设置中有以下内容。py
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
ALLOWED_HOSTS = ['*']
# Application definition
INSTALLED_APPS = [
'youtube',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'django.contrib.sitemaps',
]
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.0/howto/static-files/
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
仅供参考,我尝试将 STATIC_ROOT 更改为“静态”,但没有成功。
STATIC_ROOT = 'static'
STATIC_URL = '/static/'
我的目录结构:
我来自应用 youtube 的 HTML 文件和应用目录结构
<link rel="stylesheet" type="text/css" href="{% static 'youtube/about.css' %}">
我的应用程序.yaml
runtime: python
env: flex
runtime_config:
python_version: 3.7
entrypoint: gunicorn -b :$PORT yt_analytics.wsgi
automatic_scaling:
min_num_instances: 1
max_num_instances: 2
handlers:
- url: /static
static_dir: static/
- url: /.*
script: auto
我已运行以下命令在本地服务器上进行测试,然后在 Google 应用引擎上进行部署。
python manage.py runserver
python manage.py collectstatic
gcloud app deploy
当我运行 collectstatic 命令时,我看到它正在我的项目根目录中创建名为 static 的新文件夹。即 yt_analytics/static
现在我看到我的项目中有两个静态目录--
yt_analytics/静态
yt_analytics/youtube/静态
当我运行 findstatic 命令时,我得到了:
python manage.py findstatic youtube/about.css
Output:
Found 'youtube/about.css' here:
/home/work/Mirror/Projects/django/ytwebsite/yt_analytics/youtube/static/youtube/about.css
在问这个问题之前,已经用尽了所有的论坛和答案。我无法在 GAE 上部署我的应用程序。感谢您的帮助。
【问题讨论】:
-
DEBUG = False- django 不会也不应该在此模式下提供静态文件和媒体文件。配置您的网络服务器以提供服务。 -
你真是个天才,我手动为他们服务,而且效果很好。非常感谢
标签: python css django google-app-engine google-cloud-platform