【问题标题】:Why static files not loaded when im using slug in url?为什么我在 url 中使用 slug 时没有加载静态文件?
【发布时间】:2020-01-26 17:23:45
【问题描述】:

当我在我的 url 中使用 slug 时,.html 文件不会加载静态文件。我已经将静态文件夹声明为“资产”,其余的“模板”(.html 文件)都很好。但是当涉及到 示例:“127.0.0.1:8000/edit_audio/2/”edit_audio.html 不会加载我的静态文件 但是当我访问“127.0.0.1:8000/edit_audio”时,html 文件可以与静态 css 文件一起正常工作

这是我在 settings.py 上的静态配置

STATIC_URL = '/assets/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'assets'),
]

这是在 urls.py 上

urlpatters = [ 
url(r'^edit_audio_upload/(?P<pk>\d+)/$',views.edit_audio_upload, name='edit_audio_upload'),
]

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

这是其他html的href链接

{% for audio in data3 %}
<a href="{{ audio.get_absolute_url }}">
  <button type="button" class="btn btn-success waves-effect waves-light" data-toggle="" data-target=""><span class="mdi mdi-pencil"></span></button>
</a>
{% endfor %}

这是models.py

class Audio(models.Model):
#some atributes declaration
def get_absolute_url(self):
    return "/edit_audio_upload/%s/"%(self.id)

编辑: Get 请求错误

    [26/Sep/2019 19:43:49] "GET /edit_audio_upload/35/assets/js/pages/form-quilljs.init.js HTTP/1.1" 404 4417
Not Found: /edit_audio_upload/35/assets/js/app.min.js

成功之路是

[26/Sep/2019 19:50:25] "GET /assets/js/pages/dashboard-1.init.js HTTP/1.1" 304 0

即使在访问 /edit_audio_upload 时,如何保持获取请求在正确的路径上??

【问题讨论】:

  • 我只是为了重定向获取请求 "GET /edit_audio_upload/35/assets/images/users/user-6.jpg HTTP/1.1" 404 4399 Not Found: /edit_audio_upload/35/assets/libs /ladda/spin.js 进入 /assets/libs/ladda/spin.js
  • 为什么你没有显示发生错误的实际页面的模板,即“/edit_audio_upload/35/”,而不是链接到它的那个?
  • 你不应该有这样的网址。请向我们展示您实际构建该 URL 的代码/模板(在您的 views.edit_audio_upload 视图中呈现的那个)。

标签: python django


【解决方案1】:

只需阅读此处的文档Managing static files,您只是忘记在模板顶部添加 {% load static %}。

https://stackoverflow.com/a/15943634/11049364

【讨论】:

    猜你喜欢
    • 2019-12-30
    • 1970-01-01
    • 2021-07-22
    • 2020-09-11
    • 2021-11-12
    • 1970-01-01
    • 2016-12-05
    • 1970-01-01
    • 2021-01-31
    相关资源
    最近更新 更多