我尝试过根据官方文件我无法设置... 我在这里附上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/',
)
答案 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_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')
答案 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