我已经在Heroku上部署了简单的博客应用程序,它运行起来Django=1.8.4,而且我遇到了一些静态文件问题.
当我打开我的应用程序时,我看到了Application Error页面,所以我尝试调试它并发现当我提交Heroku时它无法在我的静态文件夹上执行collectstatic.其他一切都在运作,Heroku正在向我展示Build succeeded但不能预成型
remote: -----> Preparing static assets
remote: Collectstatic configuration error. To debug, run:
remote: $ heroku run python bloggy_project/manage.py collectstatic --noinput
Run Code Online (Sandbox Code Playgroud)
所以Heroku要我调试它.我输入后
heroku run python bloggy_project/manage.py collectstatic --noinput
Run Code Online (Sandbox Code Playgroud)
错误日志显示:
Running python bloggy_project/manage.py collectstatic --noinput on greenbloggy... up, run.4682
Traceback (most recent call last):
File "bloggy_project/manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
utility.execute()
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 330, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 190, in fetch_command
klass …Run Code Online (Sandbox Code Playgroud) 我对Django有一点问题,它不是我的静态文件.我已阅读文档,我尝试直接使用路径,使用{{STATIC_URL}},最推荐的方法是留下详细信息.知道怎么解决吗?template.html:
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'css/normalize.css' %}" />
<link rel="stylesheet" type="text/css" href="{% static 'css/demo.css' %}" />
<link rel="stylesheet" type="text/css" href="{% static 'css/component.css' %}" />
<link rel="stylesheet" type="text/css" href="{% static 'css/cs-select.css' %}" />
<link rel="stylesheet" type="text/css" href="{% static 'css/cs-skin-boxes.css' %}" />
Run Code Online (Sandbox Code Playgroud)
local.py(设置)
STATIC_URL = '/static/'
Run Code Online (Sandbox Code Playgroud)
STATICFILES_DIRS = [BASE_DIR2.child('static')]
我的文件夹在正确的方向 第一个文件夹是virtualenv,第二个文件夹是Django项目,其中是manage.py(图像)
视图,模型,网址和表单正常工作,并显示所选模板[python代码正常工作(图像)] [2]
我尝试更改STATICFILES_DIRS:
STATICFILES_DIRS = (
os.path.join(os.path.dirname(BASE_DIR), 'static', ),
)
Run Code Online (Sandbox Code Playgroud)
为了并打印路径以确保它是正确的,但错误仍在继续. 打印结果 在此先感谢
我无法通过nGinx提供静态文件,而是获得了404.我可以看到错误(显示在error.log中),我只是看不出如何解决它.
urls.py
urlpatterns += patterns('', (
r'^static/(?P<path>.*)$',
'django.views.static.serve',
{'document_root': 'static'}
))
Run Code Online (Sandbox Code Playgroud)
settings.py
STATIC_ROOT = os.path.join(PROJECT_DIR, "staticfiles/")
STATIC_URL = '/static/'
DEBUG=False
Run Code Online (Sandbox Code Playgroud)
(一个collectstatic和所有静态文件现在都在'staticfiles /'中)
nginx配置
server {
listen 80;
server_name my_ip;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/project/project/project/staticfiles;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/project/project/project.sock;
}
}
Run Code Online (Sandbox Code Playgroud)
base.html文件
{% load staticfiles %}
<link rel="stylesheet" href="{% static '/css/main.css' %}">
Run Code Online (Sandbox Code Playgroud)
这是日志
error.log中
2017/04/09 10:57:40 [error] 4719#4719: *182 open() "/home/project/project/project/staticfiles/static/images/home-lock.png" failed (2: No such file or directory) …Run Code Online (Sandbox Code Playgroud) 我有一个名为 的静态 css 文件blog.css,我将它加载到我的 base.html 模板中,如下所示:
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'css/blog.css' %}">
Run Code Online (Sandbox Code Playgroud)
但是当我想更改该 css 中的某些内容时,更改不会出现。由于我的困惑,我试图测试一些东西。
blog.css为blog2.css奇怪的是,当我对 blog2.css 进行更改并在 base.html 中调用它时,我的更改会起作用,例如更改背景颜色等。
但是当我对 进行更改时blog.css,没有任何反应。
所以,我尝试 DELETE blog.css,但仍然在 base.html 中调用它。
当我第一次制作该文件时,一切仍然有效。我应该期待一个损坏的设计 HTML 页面和控制台中的 404,因为找不到静态文件夹中的 blog.css。
就像 blog.css 是一个鬼魂或仍然存在于我文件夹中某处的东西.. 或者我错过了什么?
我还尝试重新启动 runserver 命令,无数次刷新页面,甚至重新启动我的计算机。
我对 Django 很陌生,我正在尽我所能去理解它,并感谢您提供的任何帮助。非常感谢!
404 URL 示例:
http://ip.address/static/admin/css/base.css
我不确定我做错了什么。这是关联的文件:
设置.py
STATICFILES_DIRS = [
'/home/username/sitename/sitenameenv/lib/python3.5/site-packages/django/contrib/admin/static',
]
STATIC_URL = '/static/'
STATIC_ROOT = '/home/username/sitename/website/staticroot/'
Run Code Online (Sandbox Code Playgroud)
Nginx 配置:
server {
listen 80;
server_name http://ip.address/;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/username/sitename/website/;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/username/sitename/sitename.sock;
}
}
Run Code Online (Sandbox Code Playgroud)
常规静态文件正在正确提供,并且在我添加STATIC_ROOT和使用之前它们也在这样做collectstatic,我认为这是没有必要的。不过,我的管理员因其静态文件而收到 404 错误。
我已经环顾了这个网站以及其他网站,但仍然没有找到一个解决方案来解决为什么 django 没有加载我的 css 文件
我的 settings.py 文件:
STATIC_URL = '/static/'
STATICFILES_DIR = [
os.path.join(BASE_DIR, "static"),
]
Run Code Online (Sandbox Code Playgroud)
在我的 html 文件中:
{% load static %}
<link rel="stylesheet" href="{% static '/css/my_style.css' %}">
Run Code Online (Sandbox Code Playgroud)
我的文件树:
todo_app
static
todo_app
todo_list
db.sqlite3
manage.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'todo_list',
]
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。我尝试使用不同线程上显示的 STATIC_ROOT ,但没有任何变化。
在部署到 Heroku 的 Django 1.11 应用程序上。当加载根 URL 时/(我猜当 Django 进入模板时{% static 'angular/angular.min.js' %})homepage.html我收到以下错误:
ValueError: Missing staticfiles manifest entry for 'angular/angular.min.js'
File "django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "homepage/views.py", line 87, in homepage
"latest_python3": Version.objects.filter(supports_python3=True).select_related("package").distinct().order_by("-created")[0:5]
File "django/shortcuts.py", line 30, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "django/template/loader.py", line 68, …Run Code Online (Sandbox Code Playgroud) 我有以下项目结构:
myproject
- myapp
- manage.py
- myproject
- settings.py
- urls.py
...
- static
- templates
Run Code Online (Sandbox Code Playgroud)
我想从这个静态文件夹中提供所有静态文件。在我的settings.py中,我有以下内容:
myproject
- myapp
- manage.py
- myproject
- settings.py
- urls.py
...
- static
- templates
Run Code Online (Sandbox Code Playgroud)
但是,在我的模板之一中,当我使用以下命令调用静态文件时......
{% load static %}
...
<link href="{% static 'css/styles.css' %}" rel="stylesheet" />
Run Code Online (Sandbox Code Playgroud)
...没有加载任何内容。
但是,如果我在 myapp/static/css/styles.css 中添加 css 文件,则一切正常。如何从项目根文件夹提供静态文件?谢谢你的帮助。
python django django-templates django-static django-staticfiles
我有带有 javascript 的倒计时器,我想在倒计时结束后重定向到另一个页面。倒计时工作正常,但它没有重定向到结果页面
我试过这个:
应用程序.js
var count = 15
var counter = setInterval(timer , 1000)
function timer(){
count = count-1
if (count <= 0)
{
clearInterval(counter);
return window.location.replace("{% url'app:result' %}")
}
document.getElementById("timer").innerHTML= count + " secs";
}
Run Code Online (Sandbox Code Playgroud) javascript django django-templates django-models django-staticfiles
在 Azure webapp 上获得了我的 Django 项目,但是当我调用 SSH 终端时:
Python manage.py collectstatic
它说复制了 252 个文件,但我的静态文件在我的模板上不可见,wwwroot 中的静态文件夹是空的...这是我的 wwwroot 结构:
wwwroot
|---Myproject
|---manage.py
|---oryx-manifest.toml
|---hostingstart.html
|---static //With all my static files
??? myapp
? ??? migrations
? ??? __pycache__
? ??? static
| | |---Images
| | | |--myimage.png
| | | |--myimage2.png
? ??? templates
Run Code Online (Sandbox Code Playgroud)
这是我的settings.py:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
('myapp', os.path.join(BASE_DIR, 'myapp', 'static')),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
Run Code Online (Sandbox Code Playgroud)
知道为什么或我做错了什么吗?Azure 收集不同吗? …