当前位置: 首页 > 面试题库 >

适用于网络静态文件的Docker Django 404,但适用于管理静态文件的Docker

方坚壁
2023-03-14
问题内容

请帮助我在此docker django配置中提供静态文件。

Django正在进行的项目在Docker交付时遇到了一些问题static files

管理员视图的 所有静态文件都可以正常加载,但是客户端Web视图的静态文件则抛出404 Not found错误。

这是我的 docker.yml 配置详细信息:

web:
  build: ./web
  expose:
    - "8000"
  links:
    - postgres:postgres
  volumes:
    - ./web:/usr/src/app
  ports:
    - "8000:8000"
  env_file: .env
  command: python manage.py runserver 0.0.0.0:8000

postgres:
  image: postgres:latest
  volumes:
    - /var/lib/postgresql
  ports:
    - "5432:5432"

更新

这是管理员静态文件url的样子: http
//developer.com :
8000/
static/admin/css/
base.css
,这是客户端静态文件url的样子: http :
//developer.com : 8000
/static/css/base.css

静态目录中的admin文件夹是通过运行django命令创建的 collectstatic

我以前使用过此设置,并且工作正常。但是,当我将项目根文件夹移动到另一个目录时,似乎会出现此问题。

我完全被困在这里,非常感谢您的所有帮助和反馈。


问题答案:

这是文件中的 STATICFILES_DIRS 配置问题 settings.py

此设置定义了在启用 FileSystemFinder*
Finder(例如,如果您使用collectstatic或findstatic管理命令或使用静态文件服务视图)的情况下 staticfiles
应用将遍历的其他位置。
*

以下是我的settings.py中的配置:

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

现在,我将此代码更新为:

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

而且每个文件都可以正常加载。

参考链接



 类似资料:
  • 问题内容: 我想将服务和子目录作为静态文件提供。索引文件应同时在和URL处提供。 我有 但是第二行显然可以处理整个,包括其中的所有文件(不只是and ),我不希望这样。 我也试过 但是访问基本URL 会导致对(双重组件)的请求,这当然会失败。 有任何想法吗? 顺便说一句,我在Express中找不到关于此主题的文档(+它的参数)…令人沮丧。也欢迎使用doc链接。 问题答案: 期望第一个参数是目录的

  • django.contrib.staticfiles 从你的应用(和其他你指定的地方)收集所有静态文件到同一个地方,这样产品就能很容易的被维护 看看这里 对于静态文件的应用和一些用法示例的介绍,请参阅管理静态文件(CSS,图像) . 如果你想知道如何部署静态文件, 请参阅 部署静态文件. 设置 查看staticfiles settings了解更多设置细节 STATIC_ROOT STATIC_UR

  • 为了提供诸如图像、CSS 文件和 JavaScript 文件之类的静态文件,请使用 Express 中的 express.static 内置中间件函数。 此函数特征如下: express.static(root, [options]) The root argument specifies the root directory from which to serve static assets.

  • 静态文件的服务,可以有两种方式来进行,一种是中间件,另一种是直接使用内置的Actions。 使用中间件 Static 让你用一行代码可以完成一个静态服务器。 func main() { t := tango.New(tango.Static()) t.Run() } 然后,将你的文件放到 ./public 目录下,你就可以通过浏览器放问到他们。比如: http://localhos

  • 除了用于渲染和转换的内容之外,我们还可以使用静态文件。 静态文件不包含任何 YAML 头信息,譬如图片、PDF 和其他不必渲染的内容。 它们在 Liquid 中可以通过 site.static_files 访问,还包括以下元数据: 变量 描述 file.path 文件的相对路径,如:/assets/img/image.jpg file.modified_time 文件的最后修改时间,如:2016-

  • 顾名思义,静态文件就是那些不会改变的文件。在一般的应用程序中,静态文件包括 CSS 文件,JavaScript 文件以及图片。它们也可能是音频文件以及其它类似的东西。 组织你的静态文件 我们将会在我们的应用程序包里为我们的静态文件创建一个叫做 static 的目录。 myapp/ __init__.py static/ templates/ views/