Django的静态文件从404复活的故事
概述
在使用django的runserver时可以访问静态文件,但在使用apache时无法访问。我找到了解决方法,并为了整理思路写下来。基于Bitnami设置,如果您直接安装了Apache,请根据实际情况进行调整。
如下:
水流;情况发展;经过某地
-
- 准备一个Windows PC,64位。
使用BITNAMI DJANGO STACK安装mysql和apache。
参考“创建一个新的Django项目”使用django创建项目。
参考“部署一个Django项目”进行部署设置。
访问网站。
无法加载图片和CSS!
在settings.py和httpd-app.conf中添加内容并执行collectstatic命令。
访问网站。
成功加载!
未读取的文件
<img width="30" src="{% static '[app-name]/bitmap.png' %}" height="30" class="d-inline-block align-top" alt="">
<link rel="stylesheet" href="{% static '[app-name]/css/style.css' %}">
目录结构
目录树:
[项目目录]/
┣ [项目名称]/
┃ ┣ settings.py
┃ ┗ …
┣ static/
┃ ┗ …
┣ [应用名称]/
┃ ┣ static/
┃ ┃ ┗ [应用名称]/
┃ ┃ ┣ css/
┃ ┃ ┃ ┗ …
┃ ┃ ┣ js/
┃ ┃ ┃ ┗ …
┃ ┃ ┣ img/
┃ ┃ ┃ ┗ …
┃ ┃ ┗ …
┃ ┗ …
┗ deploy/ # 用于部署的目录
┃
┣ [app-name]/
┃ ┗ ...
┗ ...
请尽快回复我的邮件。
设定静态访问权限
py:[projectname]\settings.py
STATIC_URL = ‘/static/’ # 发布使用的URL
STATIC_ROOT = os.path.join(BASE_DIR, ‘deploy’) # 用于发布的URL
STATICFILES_DIRS = (
os.path.join(BASE_DIR, ‘static’), # 指定项目根目录下的static文件夹
请原谅我,我不会说中文。
# collectstaticでコピーしたstaticディレクトリのパスを登録
Alias /static/ [deploy用のディレクトリ]
# staticへのアクセスを許可
<Directory [deploy用のディレクトリ]>
Require all granted
</Directory>
在Windows10中,[deploy用的目录]
"%userprofile%/Bitnami Django Stack projects/[project-dirctory]/deploy/"
静态文件的集合
如果可以設置追加,則可以使用python manage.py collectstatic將其集中到一個地方。
注意:如果您已准备好管理员网站等等,
那么请重新启动Apache并通过浏览器进行访问,
这样静态文件也会一起整合,以免对意料之外的文件数量感到惊讶!
参考网站
djangoは誰が動かしているのか?(デプロイのための俯瞰)
ここを読まなければ詰んだままでした。感謝。
Django staticファイル まとめ
Djangoにおける静的ファイル(static file)の取り扱い
Django Static Files
The staticfiles app | Django Official
意气风发!