- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我看过很多关于 Django 静态文件问题的不同帖子。不幸的是,他们似乎都没有帮助我。我的 django admin css 很好,但是静态文件给我一个 404 错误。这是我的问题的描述:
在 settings.py 中:
STATIC_URL = '/static/'
STATIC_ROOT = '/Users/me/develop/ember/myproj/static/'
在 urls.py 中:
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
我的项目目录:
> static
> myproj
> app
> templates
> ember.hbs
> img
> test.jpg
在我的 ember.hbs
中,我引用了 test.jpg
,但出现 404 错误。这很奇怪,因为我实际上可以使用以下方法提取图像:file:///Users/me/develop/ember/proj/static/myproj/img/test.jpg
我不知道该怎么做才能解决这个问题,我尝试使用此处提到的 STATICFILES_DIRS
方法:https://docs.djangoproject.com/en/1.8/howto/static-files/但似乎没有任何效果。
提前致谢!
更多信息:Django 1.8 和 Ember-CLI。我在 static
目录中托管 ember 项目。
我正在运行 python manage.py runserver
并在端口 8000 上运行 django,同时运行 ember s
并在端口 4200 上运行应用程序。我正在使用 CORS -headers ( https://github.com/ottoyiu/django-cors-headers/ ) 以允许跨站点调用开发。
最佳答案
静态文件将在您创建的“应用程序”(在 INSTALLED_APPS
中找到)或在您在 STATICFILES_DIRS
中指定的其他目录中发现。
假设我做到了:
django-admin.py startproject myproject
然后:
cd myproject
./manage.py startapp myapp
mkdir myapp/static
mkdir myproject/static
会给你一个看起来像这样的目录结构
/Users/me/develop/myproject/
> myapp/
> migrations/
> static/
> __init__.py
> admin.py
> models.py
> tests.py
> views.py
> myproject/
> static/
> __init__.py
> settings.py
> urls.py
> wsgi.py
> manage.py
然后在 settings.py 中将“myapp”添加到 INSTALLED_APPS
。
在这个结构中,myapp/static/
文件会被Django自动发现,因为它是一个静态目录的已安装应用。但是,不会自动发现 myproject/static/
文件,因为“myproject”不在 INSTALLED_APPS
中(不应该)。
这是因为默认的 STATICFILES_FINDERS
设置,即:
STATICFILES_FINDERS = [
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'django.contrib.staticfiles.finders.FileSystemFinder',
]
第一个查找器 AppDirectoriesFinder
扫描所有 INSTALLED_APPS
的目录,并发现它们可能包含的任何“静态”文件夹。
第二个查找器 FileSystemFinder
扫描您在 STATICFILES_DIRS
中指定的额外目录,默认情况下它是一个空列表。
因此,如果您希望发现/Users/me/develop/myproject/myproject/static/中的那些文件(正如您可能所做的那样),您可以将其添加到您的 settings.py 中:
from os import pardir
from os.path import abspath, dirname, join
# Get the root directory of our project
BASE_DIR = abspath(join(dirname(__file__), pardir))
# Add our project static folder for discovery
STATICFILES_DIRS = (
# /Users/me/develop/myproject/myproject/static/
join(BASE_DIR, 'myproject', 'static'),
)
现在,所有这些都与 STATIC_ROOT
分开,这是一个在您运行 ./manage.py collectstatic< 时所有静态文件都被复制的地方
。对于刚刚开始的项目,这通常位于项目根文件夹中:/Users/develop/me/myproject/static/
所以我们会在 settings.py 中添加:
# /Users/me/develop/myproject/static/
STATIC_ROOT = join(BASE_DIR, 'static')
但这只真正用于生产——这是一种将所有静态 Assets 编译到一个位置的方法,然后用您的服务器(例如 NGINX)将/static/指向它。
在开发过程中,您可以完全跳过 collectstatic,让 Django 即时发现和提供您的静态 Assets 。 Django 在 django.contrib.staticfiles.views.serve
中提供了一个“服务” View 来执行此操作。
在你的 urls.py 中试试这个:
from django.conf import settings
from django.conf.urls import include, url
from django.contrib import admin
from django.contrib.staticfiles.views import serve
admin.autodiscover()
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
]
if settings.DEBUG:
urlpatterns += [
url(r'^static/(?P<path>.*)$', serve),
]
在您的示例中,您要求 Django 从 STATIC_ROOT
提供文件,这也很好,但需要您先运行 ./manage.py collectstatic
,并且每次您的静态 Assets 发生变化时——这可能会很麻烦。
关于python - 更多 Django 静态 404 问题 - 与 ember 配对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31737416/
我正在尝试将 ember-models 链接到 ember-table,以从服务器提取分页记录,并在向下滚动时将它们添加到表中。 我可以通过请求我的 api url 和页码来让它工作,就像 http:
我有一个应用程序,它使用 ember-data 来持久化数据和 StateManager 来驱动其全局状态。由于加载数据是异步的,我想知道如何捕获表示所有数据都已加载的事件。 准确地说,我有一个名为“
我有一个简单的 Ember 应用程序,其中有一个输入框、两个选择框和一个按钮。我可以在“doSearch”方法中访问输入框的值,但不能访问选择框的值。 到目前为止,我没有尝试任何工作 - 我注释掉了我
我使用 Ember-CLI 来构建我的 ember 应用程序,但我不想使用 Ember Data。 默认情况下,当你输入这个命令:ember generate model Person 时,ember
我按照 Ember CLI 主页的说明创建了我的第一个 Ember CLI 插件。该插件运行良好,并且已经在 Github 上获得了几颗星:https://github.com/lolmaus/emb
我在这里看到的以前的问题似乎都没有涵盖何时使用 Ember 计算属性与 Ember Observer 的主题。我知道计算属性使用以前的属性来帮助生成新属性并在运行循环中更新。 Person = Emb
我一直在 git 分支上切换到 1.13.2 版本的 ember,现在我想在返回另一个分支时回到 1.11.1。 我一直在运行npm install和 bower install没有失败。 但是当我运
我有一个使用 ember-cli 构建的 Ember 应用程序我正在使用 ember-qunit 编写我的测试使用 testem 测试适配器并在浏览器中运行它们按照 ember-cli 中的说明文档。
项目设置: Ember:2.0.0 Ember 数据:2.0.0 Ember-cli:1.13.8 我创建了一个转换:转换/isodate.js import DS from 'ember-data'
假设我有一个具有 2 个属性的组件:我如何能够基于 localID 属性和 Ember.compulated.filterBy 宏创建计算属性? localID: 2, data: [ { i
我刚刚创建了一个新的 Ember-CLI app (v0.1.12),并注意到 Ember 的引用版本是 v1.8.1 (bower.json)。我想要 recently released 1.10我
使用最新的 Ember (3.2)、ember-cli-mirage 0.4.7、ember-cli-qunit 4.3.2、ember-qunit 3.4.1 我正在使用 ember-cli-mir
我是一名 ember 菜鸟,正在阅读 ember-cli 101 这本书。迄今为止,我一直在 ember-cli 网站 here 上使用升级工作流程。 。 在终端中使用 ember-cli 帮助时,我
如何测试我的组件,将 ember-data 模型作为 props 传递给它? 例如: {{#queue/review/moderatable-text model=activity property=
Ember 对象和 Ember Data 中的对象有什么区别?我知道当服务器上有一些数据时我应该使用 Ember Data 模型,但是我应该何时何地使用它们中的任何一个? 最佳答案 注意:这很长,有偏
执行ember -v仅显示ember cli版本。 如何查看 ember.js 版本和 ember 数据版本? 最佳答案 ember.js 和 ember-data 的版本由应用的依赖项决定。 Bow
我正在尝试在 Ember.RSVP.all 内执行 promise App.Foo = Ember.Object.create({ bar: function() { var
访问 ember 对象属性的首选方法是什么?我经常看到 .get() 方法被使用,但想知道为什么人们不只是使用点表示法。例如在 Advice in the Use of Ember Trek 先生写道
我知道 Ember 有一个记录器,但我想创建自己的用于学习目的。我有一个名为 logger 的服务,我希望能够在任何地方使用这个服务。将此服务注入(inject)到组件、 Controller 等中没
我刚刚关注了 ember-cli 主页上的“入门”帖子。 我安装了 ember 0.1.2、bower、phantomjs 等。 但是,我创建了我的应用程序,当我运行“ember server”时,它
我是一名优秀的程序员,十分优秀!