静态 url 在常规页面 url 之后
Static url goes after the regular page url
我的静态文件只在索引页面上加载,但是当导航到另一个页面时:examle_url/page,它 returns 一个 404 错误,因为它是这样加载的:http://127.0.0.1:8000/categories/default/static/js/main.js,查看 page
后的静态负载
settings.py
STATIC_URL = 'static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root/')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, '/static/base'),
)
urls.py "all my urls are in main directory and then i import views from apps"
urlpatterns = [
path('admin/', admin.site.urls),
path('profile/', profile, name="profile"),
path('', index, name="index"),
path('category/', category, name="category"),
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
如果重要的话,我的加载静态文件都在 theme.html 文件中,然后在所有其他 html 文件中扩展。
任何帮助将不胜感激,在此先感谢!
您应该在 STATIC_URL
setting [Django-doc] 前添加一个 斜线 :
# settings.py
# …
# with a <i>leading</i> slash
STATIC_URL = <b>'/static/'</b>
# …
如果您不这样做,那么 url 将看起来像 static/js/main.js
。如果路径不以斜杠开头,那么就是 relative 到 current URL 的路径,因此如果页面是/categories/default
,它会查看/categories/default/static/js/main.js
。
我的静态文件只在索引页面上加载,但是当导航到另一个页面时:examle_url/page,它 returns 一个 404 错误,因为它是这样加载的:http://127.0.0.1:8000/categories/default/static/js/main.js,查看 page
后的静态负载settings.py
STATIC_URL = 'static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root/')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, '/static/base'),
)
urls.py "all my urls are in main directory and then i import views from apps"
urlpatterns = [
path('admin/', admin.site.urls),
path('profile/', profile, name="profile"),
path('', index, name="index"),
path('category/', category, name="category"),
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
如果重要的话,我的加载静态文件都在 theme.html 文件中,然后在所有其他 html 文件中扩展。
任何帮助将不胜感激,在此先感谢!
您应该在 STATIC_URL
setting [Django-doc] 前添加一个 斜线 :
# settings.py
# …
# with a <i>leading</i> slash
STATIC_URL = <b>'/static/'</b>
# …
如果您不这样做,那么 url 将看起来像 static/js/main.js
。如果路径不以斜杠开头,那么就是 relative 到 current URL 的路径,因此如果页面是/categories/default
,它会查看/categories/default/static/js/main.js
。