Django 1.8中的STATIC_ROOT设置

时间:2015-11-22 04:58:31

标签: python django static django-staticfiles django-1.8

我尝试过根据官方文件我无法设置... 我在这里附上IMG,请给我建议,问题在哪里。enter image description here

或者,用字典树结构给我简单的步骤。

谢谢。

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

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


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

7 个答案:

答案 0 :(得分:1)

默认情况下,在settings.py文件中使用最新版本的python和django创建项目时,会使用from pathlib import Path语句。因此,在这种情况下,无需使用os.path

from pathlib import Path # Import First

STATIC_ROOT = Path.joinpath(BASE_DIR, 'static_collected')

答案 1 :(得分:0)

STATIC_ROOT应该没有引号:

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

此外,STATIC_ROOT文件夹的名称不应与STATICFILES_DIR文件夹相同,因此您应将其命名为staticfiles,而不是:{/ p>

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

答案 2 :(得分:0)

说明STATIC_ROOT不是文件系统路径时,错误很明显。 Django要求STATIC_ROOT是机器上文件夹位置的绝对路径。此错误可能意味着您生成的STATIC_ROOT是部分或相对路径。 BASE_DIR的价值是多少?在设置STATIC_ROOTprint(STATIC_ROOT)的行之后,看看它是什么值。

尝试按以下方式设置BASE_DIR

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

其他错误

在线

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

您的值由单引号括起来。 os.path.join()是函数调用。删除引号并更改如下所示的行:

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

此外,STATIC_ROOT不能包含在STATICFILES_DIRS的文件列表中。考虑将STATIC_ROOT文件夹设置为:

STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')

答案 3 :(得分:0)

STATIC_ROOT = 'os.path.join(BASE_DIR, 'static')'是一个错误的字符串。

应为STATIC_ROOT = os.path.join(BASE_DIR, 'static')

答案 4 :(得分:0)

STATIC_ROOT = 'os.path.join(BASE_DIR, 'static_root', 'static')无效。

试试这个:

# define your base directory
# It will be `absolute/path/to/demo3`
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATIC_URL = '/static/'
# define where your static files will be collected
# It will be `absolute/path/to/demo3/static`
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
# keep it empty for the moment
STATICFILES_DIRS = (
)

您必须了解STATICFILES_DIRS角色:

  

您的项目可能还会包含与之无关的静态资产   特定的应用程序。除了在你的内部使用静态/目录   应用程序,您可以在您的应用程序中定义目录列表(STATICFILES_DIRS)   设置文件,Django也会查找静态文件。

我建议您仔细阅读Django文档:Managing static files

答案 5 :(得分:0)

记得在您的根目录中创建一个 static 文件夹,并在您的 static 文件夹中创建一个 project 文件夹。那么您的文件结构将是:

demo3
    /demo3/staticfiles # collection folder for all static files
    /static            # root static folder
    /userForms/static  # your app static files
# OR
demo3
    /demo3
    /static_files     # collection folder for all static files
    /static           # root static folder
    /userForms/static # your app static files
    

将此添加到您的 settings.py
STATIC_ROOT = os.path.join(BASE_DIR, 'demo3', 'staticfiles')
或取决于您想要收藏文件夹的位置
STATIC_ROOT = os.path.join(BASE_DIR, 'static_files')

运行 python manage.py collectstatic

然后它会将所有静态文件捆绑在项目 staticfiles 或根 static_files 文件夹中,具体取决于您想要它们的位置。

答案 6 :(得分:-1)

我添加了一个行代码,并且对我有用,我希望以后不会麻烦:)

import os