相关疑难解决方法(0)

Heroku - 处理Django应用程序中的静态文件

我在heroku中有一个项目(myapp),但我无法让静态文件正常工作.我正在关注这篇博文.

我Procfile看起来像这样:

web: python myapp/manage.py collectstatic --noinput; bin/gunicorn_django --workers=4 --bind=0.0.0.0:$PORT myapp/settings.py
Run Code Online (Sandbox Code Playgroud)

settings.py:

...

STATIC_ROOT = os.path.join(PROJECT_PATH, 'staticfiles')
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/static/admin/'

STATICFILES_DIRS = (
    # I have the static folder inside my app and not inside the project
    os.path.join(PROJECT_PATH, 'cesar/static'),
)

...
Run Code Online (Sandbox Code Playgroud)

使用heroku restart它重新启动时heroku logs显示:

...
Copying ...

114 static files copied to '/app/myapp/staticfiles'.
...
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,我heroku run ls -l myapp/看不到staticfiles文件夹:

-rw------- 1 u5605 5605    0 …
Run Code Online (Sandbox Code Playgroud)

django static heroku

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

heroku上的Django静态文件

我使用"git push heroku master"将一个django应用程序部署到了heroku,它工作得很好.

然后我使用"heroku create second-app -r staging"在同一个git上创建了第二个应用程序

并推送使用:git push staging master

当我打开第二个应用程序时,没有任何静态文件被拾取或加载(即没有css,js或图像工作)

这非常令人困惑 - 请帮忙!

我的设置文件如下

import os
import platform
import dj_database_url

DEBUG = True
TEMPLATE_DEBUG = DEBUG

# This should work for any deployment
BASE_DIR = os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))

ADMINS = (
    ('me', 'me@gmailcom'),
)

MANAGERS = ADMINS
# LOCAL SETTINGS
if platform.system() in ['Windows', 'Darwin']:
    #EV = 'LOCAL'
    DATABASES = {
             'default': {
                 'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
                 'NAME': BASE_DIR + …
Run Code Online (Sandbox Code Playgroud)

django heroku staticfilehandler django-staticfiles

16
推荐指数
2
解决办法
2万
查看次数

将 django 应用程序部署到 Heroku 缺少 CSS/静态文件

首先说我现在已经阅读了关于这个问题的多篇文章(包括这里、这里和这里)。我的理解是static urlinsettings.py需要修改 heroku 才能运行这些静态文件。我需要的,就像我小时候一样解释,是static url当静态目录嵌套在应用程序中时对这些进行什么调整——因为这是最近教程中传授的最佳实践(如果这不是理想的实践,我会感谢被纠正)。

问题1:如果该media文件被保存在目录中的应用程序内或在项目层次?

问题 2:如果媒体文件保存在应用程序内的目录中,例如我下面的目录,那么一旦推送到 heroku,我应该如何修改urlinsettings.py以加载静态文件?

我的项目结构如下:

gvlabs
    __init__.py
    __init__.pyc
    settings.py
    settings.pyc
    urls.py
    urls.pyc
    wsgi.py
    wsgi.pyc
manage.py
Procfile
requirements.txt
runtime.txt
welcome
    __init__.py
    __init__.pyc
    admin.py
    admin.pyc
    apps.py
    hello.py
    migrations
    models.py
    models.pyc
    static
        css
        fonts
        images
        js
    templates
        welcome
            base.html
            comingsoon.html
            contact_us.html
            index.html
            post_list.html
    tests.py
    urls.py
    urls.pyc
    views.py
    views.pyc
Run Code Online (Sandbox Code Playgroud)

设置.py

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

python django heroku

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