Django的静态文件从404复活的故事

概述

在使用django的runserver时可以访问静态文件,但在使用apache时无法访问。我找到了解决方法,并为了整理思路写下来。基于Bitnami设置,如果您直接安装了Apache,请根据实际情况进行调整。

如下:
水流;情况发展;经过某地

    1. 准备一个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

意气风发!

广告
将在 10 秒后关闭
bannerAds