Skip to main content
 首页 » 编程设计

python之为什么 Django 看不到我的静态文件

2025年04月02日48sxdcgaq8080

我正在尝试在我的 django_cms 站点中实现 sass_processor,但出现了一个奇怪的错误。

Unable to locate file mysite/static/scss/main.scss while rendering tag 'sass_src' in template /Users/USER/Work/DIR/APP/SITE/mysite/templates/base.html 

我已经按照最新的 Django CMS 安装说明进行了设置,并且一切正常。我试过导入静态 css 文件,效果很好。

例如在我的 base.html 中

<link href="{% static 'myapp/static/css/main.css' %}" rel="stylesheet" type="text/css" /> 

完美导入

我已确保在我的模板中包含 sass_tags

我已按照此处 github 页面上的说明进行操作: https://github.com/jrief/django-sass-processor

我的sass导入如下:

<link href="{% sass_src 'myapp/static/scss/main.scss' %}" rel="stylesheet" type="text/x-scss" /> 

我的静态文件结构如下:

STATIC_URL = '/static/' 
MEDIA_URL = '/media/' 
MEDIA_ROOT = os.path.join(DATA_DIR, 'media') 
STATIC_ROOT = os.path.join(DATA_DIR, 'static') 
SASS_ROOT = os.path.join(BASE_DIR, 'mysite', 'static', 'scss') 
SASS_PROCESSOR_ROOT = SASS_ROOT 
 
COMPRESS_PRECOMPILERS = ( 
    ('text/x-scss', 'django_libsass.SassCompiler'), 
) 
 
STATICFILES_DIRS = ( 
    os.path.join(BASE_DIR, 'mysite', 'static'), 
) 
 
SASS_PROCESSOR_INCLUDE_DIRS = ( 
    os.path.join(BASE_DIR, 'mysite', 'static'), 
    SASS_ROOT 
) 
 
STATICFILES_FINDERS = ( 
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
    'sass_processor.finders.CssFinder', 
) 
 
SASS_PROCESSOR_ENABLED = True 

我的文件结构如下:

|+env/ 
`~tate/ 
  |+media/ 
  |~mysite/ 
  | |~static/ 
  | | |+css/ 
  | | `~scss/ 
  | |   `-main.scss 
  | |+templates/ 
  | |-__init__.py 
  | |-__init__.pyc 
  | |-settings.py 
  | |-settings.pyc 
  | |-urls.py 
  | |-urls.pyc 
  | |-wsgi.py 
  | `-wsgi.pyc 
  |+static/ 
  |-manage.py* 
  `-requirements.txt 

我觉得我错过了某种路径配置,但我不确定它在哪里,因为我遵循了 Django CMS 教程和 sass_processor 页面上概述的说明。

感谢任何帮助。

请您参考如下方法:

我遇到了同样的错误消息的类似问题。 Django 找不到我的 scss 文件,但它与 CssFinder 没有任何关系,因为我首先想到的是,问题是我没有在我的 HTML 中为 django 提供有效路径。 contrib.staticfiles.finders.FileSystemFinder,这是试图找到 scss 文件的那个。

确保为 FileSystemFinder 配置提供有效路径,因为您要引用的路径不匹配:您的错误显示为 mysite/static/scss/main.scss 而您的 HTML 链接显示 myapp/static/scss/main.scss。我不知道这是否只是一个拼写错误,或者您的错误并未发生在此处。

希望对您有所帮助。