首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何去除URL中的"%20“代码(django)

如何去除URL中的"%20“代码(django)
EN

Stack Overflow用户
提问于 2012-02-10 09:28:00
回答 3查看 2.3K关注 0票数 3

我正在使用django 1.3并做一些模板继承。离开主页后,我的/static/设置路径似乎出现了问题。问题是,当我加载从base.html继承的home.html时,CSS和图像链接工作正常。但是一旦我转到一个额外的URL (在本例中是vehicle.html),css和图像就会丢失,错误如下:

控制台错误

代码语言:javascript
代码运行次数:0
运行
复制
"GET /static/%20/static/images/logo_2.jpg HTTP/1.1" 404 1771
"GET /static/%20/static/css/default.css HTTP/1.1" 404 1765

查看页源

代码语言:javascript
代码运行次数:0
运行
复制
<link rel="stylesheet" type="text/css" href="/static/ /static/css/default.css">
<link rel="stylesheet" type="text/css" href="/static/ /static/css/default.css">

它看起来像是从某个地方出现了一些空间。此外,从vehilce.html文件,页面源代码显示,它添加了一个额外的/static/到网址的空格。我会错在哪里呢?有关我的文档,请参阅以下内容:

settings.py

代码语言:javascript
代码运行次数:0
运行
复制
STATIC_ROOT = 'D:/dev/workspace/vehicle_request/vehicle_request/mvmanager/static/'
STATIC_URL = '/static/'

urls.py

代码语言:javascript
代码运行次数:0
运行
复制
urlpatterns = patterns('',
                   url(r'^$', home_page),
                   (r'^admin/', include(admin.site.urls)),
                   (r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT}), #Not in use in my code yet
                   (r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.STATIC_ROOT}),
                   (r'^vehicle/', vehicle),
                   (r'^driver/', driver),

base.html

代码语言:javascript
代码运行次数:0
运行
复制
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}/static/css/default.css">
<title>{% block title %}{% endblock %}</title>
</head>
<body>
<header>
<a href="http://localhost:8000" title="Home Page">
<img alt="logo2:" src="{{ STATIC_URL }}/static/images/logo_2.jpg"
style="float:left; margin:5px" height="100"; border=none"></a><br><br>
<h1>Vehicle Request System <span class="version">(Version 0.1 beta)</span></h1>
</header>
<hr style="clear: left">
<hr>
</body>
</html>

vehicle.html

代码语言:javascript
代码运行次数:0
运行
复制
{% extends "base.html" %}
{% block title %}Vehicle Registration{% endblock %}
{% block content %}
<html>
<head></head>
<body></body>
</html>
{% endblock %}

谢谢。

编辑

1.我已经将href="{{STATIC_URL}} /static/css/default.css">中的stati改为读取代码中的static。我一定是在发帖的时候错误地用了退格键。然而,继续向前看,

2. When I change {{STATIC_url}} /Static to {{STATIC_URL}}/Static ie.我删除了下面@sarnold建议的两个单词-as之间的空格,home.html照常工作,但vehicle.html仍然不加载css和图像,并在控制台中显示以下错误:

代码语言:javascript
代码运行次数:0
运行
复制
File "c:\Python27\lib\site-packages\django\core\files\storage.py", line 234, in path
raise SuspiciousOperation("Attempted access to '%s' denied." % name)
SuspiciousOperation: Attempted access to '\static\images\logo_2.jpg' denied.
[10/Feb/2012 06:11:55] "GET /static//static/images/logo_2.jpg HTTP/1.1" 500 1731

File "c:\Python27\lib\site-packages\django\core\files\storage.py", line 234, in path
raise SuspiciousOperation("Attempted access to '%s' denied." % name)
SuspiciousOperation: Attempted access to '\static\css\default.css' denied.
[10/Feb/2012 06:23:29] "GET /static//static/images/logo_2.jpg HTTP/1.1" 500 1731

css 3.cptphil当我组合@和@cptphil建议时,vehicle.html完美地加载了css和图片。然而,home.html失败了。请参阅下面对base.html的更改:

base.html (编辑后如下所示)

代码语言:javascript
代码运行次数:0
运行
复制
<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}css/default.css">
<img alt="logo2:" src="{{STATIC_URL}}images/logo_2.jpg"

home.html现在不工作了!(查看页面源代码)

代码语言:javascript
代码运行次数:0
运行
复制
<link rel="stylesheet" type="text/css" href="css/default.css">
<img alt="logo2:" src="images/logo_2.jpg"

vehicle.html现在可以工作(查看页面源代码)

代码语言:javascript
代码运行次数:0
运行
复制
<link rel="stylesheet" type="text/css" href="/static/css/default.css">
<img alt="logo2:" src="/static/images/logo_2.jpg"

这是home.html在原始形式下的外观

代码语言:javascript
代码运行次数:0
运行
复制
{% extends "base.html" %}
{% block title %}GEL: Vehicle Request System{% endblock %}
{% block content %}
{% endblock %}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-10 09:44:23

我相信模板引擎正在做你要求它做的事情。

代码语言:javascript
代码运行次数:0
运行
复制
href="{{STATIC_URL}} /stati/css/default.css"

正确地翻译为

代码语言:javascript
代码运行次数:0
运行
复制
/static/ /stati/css/default.css

试一试

代码语言:javascript
代码运行次数:0
运行
复制
href="{{STATIC_URL}}css/default.css"

在base.html中,如果您想要的是

代码语言:javascript
代码运行次数:0
运行
复制
/static/css/default.css

不过,我无法解释为什么home.html会正常工作。

票数 5
EN

Stack Overflow用户

发布于 2012-02-10 09:42:53

在我看来,您是手动将空间添加到base.html

代码语言:javascript
代码运行次数:0
运行
复制
<link rel="stylesheet" type="text/css" href="{{STATIC_URL}} /stati/css/defau...
<img alt="logo2:" src="{{ STATIC_URL }} /static/imag....

/stati/css/static/imag之前留出空间,看看问题是否消失了。

票数 2
EN

Stack Overflow用户

发布于 2018-05-28 10:41:58

空格= %20。请确保在url中省略空格...

代码语言:javascript
代码运行次数:0
运行
复制
like : <script src="{% static " js/dashboard/salesPieChart.js" %}"></script>
To: <script src="{% static "js/dashboard/salesPieChart.js" %}"></script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9221515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档