请帮助我在此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"
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/