python - 部署的 Django 3 项目看不到静态文件
问题描述
部署(在服务器上)Django 3 项目没有看到静态和 css 文件(整个静态文件夹),开发机器上的本地工作完美。
我遵循的指南是这个。
- 我已经用 ubuntu 18.04 建立了一个数字海洋水滴
- 我的静态文件可以在这里找到
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'mymainapp/static/')]
#STATIC_ROOT = os.path.join(BASE_DIR, 'static') # Removed based [on](https://stackoverflow.com/questions/60354519/django-base-html-extended-to-homepage-html-static-images-appear-but-home-css-d)
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'mymainapp/media')
MEDIA_URL = '/media/'
- 比指南中使用 Postgres、Nginx 和 Gunicorn 的所有其他员工
- 但静态文件(图像、SVG、css、文件未加载)
- 我已将引导 CSS 文件下载到本地目录
- 该网站在线,如果我在 chrome 中按 F12,它会显示以下错误消息(转动
DEBUG = True
不再提供任何错误消息或错误页面)
Failed to load resource: the server responded with a status of 404 (Not Found)
homepage03_comp.png:1 Failed to load resource: the server responded with a status of 404 (Not Found)
logo_03c_small.png:1 Failed to load resource: the server responded with a status of 404 (Not Found)
jquery.min.js:1 Failed to load resource: the server responded with a status of 404 (Not Found)
bootstrap.min.js:1 Failed to load resource: the server responded with a status of 404 (Not Found)
popper.min.js:1 Failed to load resource: the server responded with a status of 404 (Not Found)
tiktok_col.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
instagram_col.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
twitch_col.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
twitter_col.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
youtube_col.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
facebook_col.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
bootstrap.min.js:1 Failed to load resource: the server responded with a status of 404 (Not Found)
mobile_features_large_compressed.png:1 Failed to load resource: the server responded with a status of 404 (Not Found)
creator_platforms_comp.png:1 Failed to load resource: the server responded with a status of 404 (Not Found)
creator_sm_comp.png:1 Failed to load resource: the server responded with a status of 404 (Not Found)
reoccuring_f.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
stripe_f.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
customerchat.php?app_id=&attribution=setup_tool&channel=https%3A%2F%2Fstaticxx.facebook.com%2Fconnect%2Fxd_arbiter.php%3Fversion%3D46%23cb%3Df2ca0722231e688%26domain%3D159.65.234.146%26origin%3Dhttp%3A%2F%2F159.65.234.146%2Ff167133a445f9a4%26relation%3Dparent.parent&container_width=0&locale=en_US&page_id=2172253486430236&sdk=joey:1 Failed to load resource: the server responded with a status of 500 ()
paypal_f.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
googleads1_f.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
googlepay_f.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
amazon_f.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
bitcoin_f.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
logo_02_Background.png:1 Failed to load resource: the server responded with a status of 404 (Not Found)
shirts_f.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
message_f.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
sopnsor2_f.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
socialmedia_f.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
combinedbarnad_f.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
applepay_f.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
check.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
feature_description_laptop_cut.png:1 Failed to load resource: the server responded with a status of 404 (Not Found)
self_image_comp.png:1 Failed to load resource: the server responded with a status of 404 (Not Found)
reddit_col.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
linkedin_col.svg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
collie_2_comp.jpg:1 Failed to load resource: the server responded with a status of 404 (Not Found)
bootstrap.min.css:1 Failed to load resource: the server responded with a status of 404 (Not Found)
DevTools failed to parse SourceMap: chrome-extension://hnmpcagpplmpfojmgmnngilcnanddlhb/browser-polyfill.min.js.map
DevTools failed to parse SourceMap: chrome-extension://gighmmpiobklfepjocnamgkkbiglidom/include.preload.js.map
DevTools failed to parse SourceMap: chrome-extension://hnmpcagpplmpfojmgmnngilcnanddlhb/browser-polyfill.min.js.map
DevTools failed to parse SourceMap: chrome-extension://gighmmpiobklfepjocnamgkkbiglidom/include.postload.js.map
- 在通过指南之前我遇到了同样的错误,只是有一个基本的拉取 git 版本并使用
python3 manage.py runserver
它运行加载站点,但不加载 css 和静态元素 - 我已将基础
/media
和/static
文件夹放入 git ignore (这些应该是收集元素的静态夹头)。原来的静态在myowndjango-project/myowndjango/static
and下myowndjango-project/myowndjango/media
- 我还设置了nginx如下
...
location /static/ {
root /home/myserveruser/myowndjango-project;
}
location /media/ {
root /home/myserveruser/myowndjango-project;
}
...
我试图解决的问题
- 查找服务器访问日志
- 运行
/var/log/nginx/access.log
结果:-bash: /var/log/nginx/access.log: Permission denied
- 运行
sudo /var/log/nginx/access.log
结果:sudo: /var/log/nginx/access.log: command not found
- 运行
- 更改 nginx 文件
...
location /static/ {
root /home/myserveruser/myowndjango-project/myowndjango/static;
}
location /media/ {
root /home/myserveruser/myowndjango-project/myowndjango/media;
}
...
- 运行
python3 manage.py collectstatic
(重新启动 nginx 和 gunicorn),它仍然会出现同样的错误。
解决方案
您在 nginx 中有错误的文件夹作为静态文件的位置,您应该将完整路径放入确切的静态文件/媒体文件夹
location /static/ {
root /home/myserveruser/myowndjango-project/myowndjango/static;
}
推荐阅读
- html - 如何给 div 最大自动宽度?
- firebase - 如何从数据库中的 JavaScript firebase sdk 中的子项获取数组
- angular - 如何隐藏电子默认菜单
- python - 从传感器读取方波信号
- ios - SwiftUI - 有没有办法在没有 NavigationView 的情况下构建动态列表视图?
- oracle - 尝试执行 for 循环以查找“前十个数字的总和”时遇到错误“'(' expected”
- sql-server - 使用 MS 任务计划程序每 15 分钟自动将数据从 Excel 导入 SQL Server
- sql - 如何在 postgresql jsonb 搜索中使用 SIMILAR TO 子句获取不区分大小写的数据?
- c++ - 现代 C++ 使内存泄漏更难发现
- sql - WHERE 子句中的 SQL Server CASE 表达式以检查 NULL 值