STATIC_ROOT 在 Django 1.8 中设置
STATIC_ROOT setup in Django 1.8
我试过了n我不能按照官方文档设置...
我在这里附上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/',
)
STATIC_ROOT
应该没有引号:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
此外,STATIC_ROOT
文件夹不应与 STATICFILES_DIR
文件夹同名,因此您应该将其命名为 staticfiles
之类的名称:
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles/')
指出 STATIC_ROOT
不是文件系统路径的错误很明显。 Django 要求 STATIC_ROOT
是计算机上文件夹位置的绝对路径。此错误可能意味着您得到的 STATIC_ROOT
是部分路径或相对路径。 BASE_DIR
的值是多少?在设置 STATIC_ROOT
和 print(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')
STATIC_ROOT = 'os.path.join(BASE_DIR, 'static')'
是一个错误的字符串。
应该是STATIC_ROOT = os.path.join(BASE_DIR, 'static')
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
作用:
Your project will probably also have static assets that aren’t tied to
a particular app. In addition to using a static/ directory inside your
apps, you can define a list of directories (STATICFILES_DIRS) in your
settings file where Django will also look for static files.
我建议你仔细阅读 Django 文档:Managing static files
在 settings.py 文件中使用最新版本的 python 和 django 创建项目时,默认情况下 from pathlib import Path
语句是 there.So 在这种情况下不需要使用 os.path
.
from pathlib import Path # Import First
STATIC_ROOT = Path.joinpath(BASE_DIR, 'static_collected')
我添加了一行代码,它对我有用,我希望以后不会痛苦:)
import os
记得在您的根目录中创建一个 static
文件夹,并在您的 project
文件夹中创建一个 static
文件夹。那么您的文件结构将是:
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
文件夹中的所有静态文件,具体取决于您想要它们的位置。
我试过了n我不能按照官方文档设置... 我在这里附上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/',
)
STATIC_ROOT
应该没有引号:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
此外,STATIC_ROOT
文件夹不应与 STATICFILES_DIR
文件夹同名,因此您应该将其命名为 staticfiles
之类的名称:
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles/')
指出 STATIC_ROOT
不是文件系统路径的错误很明显。 Django 要求 STATIC_ROOT
是计算机上文件夹位置的绝对路径。此错误可能意味着您得到的 STATIC_ROOT
是部分路径或相对路径。 BASE_DIR
的值是多少?在设置 STATIC_ROOT
和 print(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')
STATIC_ROOT = 'os.path.join(BASE_DIR, 'static')'
是一个错误的字符串。
应该是STATIC_ROOT = os.path.join(BASE_DIR, 'static')
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
作用:
Your project will probably also have static assets that aren’t tied to a particular app. In addition to using a static/ directory inside your apps, you can define a list of directories (STATICFILES_DIRS) in your settings file where Django will also look for static files.
我建议你仔细阅读 Django 文档:Managing static files
在 settings.py 文件中使用最新版本的 python 和 django 创建项目时,默认情况下 from pathlib import Path
语句是 there.So 在这种情况下不需要使用 os.path
.
from pathlib import Path # Import First
STATIC_ROOT = Path.joinpath(BASE_DIR, 'static_collected')
我添加了一行代码,它对我有用,我希望以后不会痛苦:)
import os
记得在您的根目录中创建一个 static
文件夹,并在您的 project
文件夹中创建一个 static
文件夹。那么您的文件结构将是:
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
文件夹中的所有静态文件,具体取决于您想要它们的位置。