我在Heroku有一个项目(我的应用程序),但是我无法让静电文件正常工作.我在跟踪这blog post个人.

我的Procfile看起来是这样的:

web: python myapp/manage.py collectstatic --noinput; bin/gunicorn_django --workers=4 --bind=0.0.0.0:$PORT myapp/settings.py

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'),
)

...

使用heroku restart重新启动时,heroku logs显示如下:

...
Copying ...

114 static files copied to '/app/myapp/staticfiles'.
...

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

-rw------- 1 u5605 5605    0 Jan 28 16:53 __init__.py
drwx------ 4 u5605 5605 4096 Jan 28 16:53 cesar
-rw------- 1 u5605 5605  503 Jan 28 16:53 manage.py
-rw------- 1 u5605 5605 6292 Jan 28 16:53 settings.py
drwx------ 2 u5605 5605 4096 Jan 28 16:53 templates
-rw------- 1 u5605 5605  257 Jan 28 16:53 urls.py
-rw------- 1 u5605 5605  286 Jan 28 16:53 views.py

我错过了什么或做错了什么?

推荐答案

我找到了解决办法.这是我最初的myapp/urls.py分:

from django.conf.urls.defaults import patterns, include, url
from django.contrib import admin
from django.conf import settings


admin.autodiscover()

urlpatterns = patterns('',
    url(r'^$', include('myapp.cesar.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

我在原始myapp/urls.py文件的末尾添加了以下几行:

if not settings.DEBUG:
    urlpatterns += patterns('',
        (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
    )

现在它工作得很好.我希望这对其他人也有帮助

Django相关问答推荐

与django相关的预取n +1问题.我该怎么解决呢?

Django:我的上下文变量不能用于重复的for循环

Django为什么我的post.count_view递增2?

Django查询一个查询集的输入结果,以查找没有出现在另一个模型中的对象

如何使更新记录在 Django 模型中传递信号?

在 Serverless + Lambda + API Gateway HTTP API 上运行的 Django 应用程序正在重写链接以使用默认前缀

组织大型 Django 元素的指南

django REST 框架 - 嵌套 ModelSerializer 的有限查询集?

Django判断字段是否为空?

在生产中使用 Django 中的 SQLite?

django 有条件地过滤对象

Django 默认=timezone.now + delta

django 模板列表变量中的最后一个元素

使用 Django 部署 Google Analytics

Django unique_together 与可为空的 ForeignKey

Django:在还原(迁移)后try 访问数据库时权限被拒绝

UpdateView 中的success_url,基于传递的值

AUTH_USER_MODEL 指的是尚未安装和创建的模型 .. AbstractUser 模型无法登录

django 应用基于条件的样式类

从 git 存储库中删除并忽略所有具有扩展名的文件