无法为django应用程序提供静态文件(apache - wsgi)

r1zhe5dt  于 2023-10-23  发布在  Apache
关注(0)|答案(2)|浏览(119)

我有预计是命名为投资组合,这是我的主页。我在这个项目上创建了一个名为体验的应用程序。
在开发服务器上,我可以为两者提供静态文件。但在生产,我只能为主页(项目),而不是应用程序. 404 Not Found错误
我做了收藏品。
我在每个应用程序(和项目)上都有一个静态目录。
我使用Apache和wsgi模块。
我在设置文件上有这个conf:

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

拱门下面:

src/
|-- Experiences
|   |-- __pycache__
|   |-- migrations
|   |   `-- __pycache__
|   |-- static
|   |   `-- Experiences
|   |       |-- assets
|   |       |   |-- fonts
|   |       |   `-- img
|   |       `-- css
|   `-- templates
|       `-- Experiences
|-- Portfolio
|   |-- __pycache__
|   |-- static
|   |   `-- Portfolio
|   |       |-- assets
|   |       |   |-- fonts
|   |       |   `-- img
|   |       `-- css
|   `-- templates
|       `-- Portfolio
`-- staticfiles
    |-- Experiences
    |   |-- assets
    |   |   |-- fonts
    |   |   `-- img
    |   `-- css
    |-- Portfolio
    |   |-- assets
    |   |   |-- fonts
    |   |   `-- img
    |   `-- css
    `-- admin
oalqel3c

oalqel3c1#

这是意料之中的,在开发阶段Django提供静态文件,但在生产阶段(当debug为false时)不会,因为这会导致性能问题。
您可以查看官方文档了解如何在Django Docs中配置静态文件
如果你想要一个更简单的解决方案,你可以给予尝试whitenoise

shyt4zoc

shyt4zoc2#

我已经改变了应用程序静态文件的位置。我把所有的静态文件放在同一个目录下。

yacine@debian:/var/www/Portfolio/src/Portfolio$ tree static/ -d
static/
|-- Experiences
|   |-- assets
|   |   |-- fonts
|   |   `-- img
|   `-- css
`-- Portfolio
    |-- assets
    |   |-- fonts
    |   `-- img
    `-- css

我不确定这是最好的方法,但它的作品的时刻。

相关问题