Reputation: 31
The problem is that static files from Django app are not being collected in pythonanywhere. After the command
python manage.py collectstatic
In the directory
/home/user/user.pythonanywhere.com/static
Only the admin folder appears. settings.py:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp'
]
Css file location:
+---myapp
| +---static
| | \---myapp
| | \---css
| | \---myapp.css
When I run the command python manage.py collectstatic in my local command line, static files from the application are collected, the problem is in pythonanywhere.
All actions are standard, I did everything strictly according to the guide, I cannot understand what's the matter. Thanks a lot
I have read all the articles on this topic on pythonanywhere and everything I found on stackoverflow and in the documentation, but nothing helps to solve the problem.
https://help.pythonanywhere.com/pages/DjangoStaticFiles
https://help.pythonanywhere.com/pages/DebuggingStaticFiles/
https://help.pythonanywhere.com/pages/StaticFiles
UPD: BASE_DIR = Path(file).resolve().parent.parent
Bash console text output:
You have requested to collect static files at the destination location as specified in your settings: /home/user/user.pythonanywhere.com/static This will overwrite existing files! Are you sure you want to do this? Type 'yes' to continue, or 'no' to cancel: yes 0 static files copied to '/home/user/user.pythonanywhere.com/static', 132 unmodified.
The contents of /home/user/user.pythonanywhere.com/static directory after collectstatic command:
+---admin
| +---css
| +---fonts
| +---img
| +---js
Upvotes: 3
Views: 3823
Reputation: 11
Static files configuration info for pythonanywhere can be found at the following link: https://help.pythonanywhere.com/pages/DjangoStaticFiles.
That said, I had the same issue mentioned in this thread even though I did all the setup correctly. The issue was related to a pythonanywhere specific configuration: in the Web tab (static files section) you should enter use the following values.
/static/
/home/your-username/path/to/your/proyect/static
The tricky thing is that the directory also needed to include the path "/static"
Upvotes: 1
Reputation: 1520
You should add the static files URL and directory in the web tab. A URL would be like/static/ and a directory would be like: /home/yourname/yourprojectname/static
Upvotes: 3
Reputation: 476
On PythonAnywhere, apart from the regular Django setup for static files, you need to perform an extra step of setting up static files mappings on the Web page (config page for your web app).
/static/
)/home/username/etc
)As a sanity check, for example, if you have a file at /home/myusername/myproject/static/css/base.css
, go visit http://www.your-domain.com/static/css/base.css.
See the docs for more details.
Upvotes: 4
Reputation: 131
to display or load the static files you just need 2 steps:
STATIC_URL
, paste the line STATIC_ROOT = '/home/QuizApp345/quiz_project/static'
(it must be your project directory REPLACE MINE)python manage.py collectstatic
Upvotes: 1