在django中将两个目录设为静态

问题描述 投票:7回答:3

我有两个目录。 static包含javascript和css文件。在设置中我写了STATIC_URL = '/static/'所以它们被正确包含在内。

但我也有文件夹图像,有很多图像。我的问题如何使文件夹图像也静态,因为我无法复制到静态。

谢谢。

python django
3个回答
15
投票

它看起来像STATICFILES_DIRS可以采取多种途径:

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
    '/var/www/static/',
)

2
投票

我想添加一个名为uploads的静态目录。我首先尝试了settings.py,但它没有用。但是,我设法通过将此行添加到文件urls.py来将上传内容转换为辅助静态URL:

url(r'^uploads/(?P<path>.*)$', static.serve, {'document_root': settings.BASE_DIR + "/uploads"}),

如果您在导入static.serve时遇到问题,这就是导入它所需的行:

from django.views import static

1
投票

如果你想要两个不同的url是静态的,在我的例子中我的angular2应用程序的开发和输出目录,这是我的解决方案,在你的url.py中:

from django.conf import settings
from django.conf.urls import patterns, include, url
from django.conf.urls.static import static

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = [
  # Examples:
  url(r'^', include('website.urls')),

  # Uncomment the next line to enable the admin:
  url(r'^admin/', include(admin.site.urls)),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

if settings.DEBUG:
  urlpatterns += static(settings.STATIC_DEBUG_URL, document_root=settings.STATIC_DEBUG_ROOT)

我有几个settings.py文件,然后我根据部署符号链接到我正在使用的文件。在我的code.settings.py里面,它链接到settings.py来编写代码,我补充说:

STATIC_DEBUG_URL = '/app/'
STATIC_DEBUG_ROOT = 'xxx/website/app/'
© www.soinside.com 2019 - 2024. All rights reserved.