小编cal*_*lum的帖子

如何在模板中获取ImageField URL?

我的Django应用程序中有以下模型:

class Image(models.Model):
    image = models.ImageField(
        upload_to='images/', 
        height_field='height', 
        width_field='width'
    )
    credit = models.CharField(max_length=50, blank=True)
    caption = models.TextField(blank=True)
    article = models.ForeignKey(Article)
    width = models.PositiveIntegerField(
        blank = True, null = True,
        editable = False,
        default = 0
    )
    height = models.PositiveIntegerField(
        blank = True, null = True,
        editable = False,
        default = 0
    )
Run Code Online (Sandbox Code Playgroud)

我已将MEDIA_ROOT设置为我的Apache Web根目录中名为/ hmedia /的目录,并且我已将MEDIA_URL设置为'http://localhost/hmedia/'.这似乎有效 - 我已成功通过Django管理站点上传了几张图片,我可以通过这些图片查看http://localhost/hmedia/images/[filename].Django管理站点实际上向我显示了文件名,并链接到每个图像的实时URL,并且链接有效.

我的问题是,我无法弄清楚如何在我的模板中获取这些图像的URL或文件名:

<ul>
{% for image in article.image_set.all %}
    <li>Caption: "{{image.caption}}", Credit: "{{image.credit}}", URL: "{{image.url}}"</li>
{% endfor %}
</ul> …
Run Code Online (Sandbox Code Playgroud)

python django

16
推荐指数
1
解决办法
3万
查看次数

npm发布不包括我的所有文件

npm publish是模块.它很好,但是当我从注册表安装它时,它结果是丢失了某些文件.

当我在我的模块的项目目录中运行irish-pub时,果然,输出不会列出这些文件名.

我检查过:

  • 我没有.npmignore档案.
  • 我确实有,.gitignore但这只包含/node_modules/
  • 丢失的文件是普通的JS文件,而不是默认情况下可以忽略的内容

还有什么可以阻止他们?

npm

15
推荐指数
4
解决办法
5333
查看次数

如何在没有eval的情况下检测异步功能支持?

这是检测当前引擎是否支持异步函数的一种方法:

const supportsAsyncFunctions = (() => {
  try {
    new Function('async () => {}')();
  } catch (error) {
    return false;
  }

  return true;
})();
Run Code Online (Sandbox Code Playgroud)

但有没有办法不使用evalFunction

javascript async-await

15
推荐指数
1
解决办法
1721
查看次数

npm5相当于yarn的--pure-lockfile标志?

我正在寻找一个相当于纱线的--pure-lockfile旗帜.

在CI中安装依赖项时,此标志非常有用,当您希望它读取锁定文件但不修改它时.

npm v5有同等效力吗?

npm package-lock.json

15
推荐指数
1
解决办法
2274
查看次数

Heroku上的Rails 4应用程序是500,但日志中没有错误消息

我已经制作了一个新的Rails 4 beta应用程序并将其部署到Heroku(使用Ruby 2.0.0,并通过Procfile使用Unicorn).

它本地运行良好foreman start,但当我访问已部署的应用程序的主页时,我只是得到标准的Heroku 500错误:

We're sorry, but something went wrong.
If you are the application owner check the logs for more information.
Run Code Online (Sandbox Code Playgroud)

但是,在日志中,没有错误.我不知道是什么导致500.

这是我上一次的输出git push heroku master:

Counting objects: 6, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 656 bytes, done.
Total 4 (delta 2), reused 0 (delta 0)

-----> Ruby/Rails app detected
-----> Using Ruby version: ruby-2.0.0
-----> Installing dependencies using …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails heroku ruby-on-rails-4

14
推荐指数
1
解决办法
6010
查看次数

为什么不建议使用polyfill来支持CSS3选择器?

我需要确保IE7和IE8支持.

我正在使用一些CSS3选择器:last-child.我放弃了Selectivizr,它似乎解决了这些浏览器中的许多问题,让我只需要少量清理一些后备代码.

但是HTML5请建议使用回退而不是polyfill来解决CSS3选择器支持问题:

我们强烈建议您不要尝试将其填充,但如果您确实需要填充,则可以使用Selectivizr.

很高兴知道为什么他们"强烈推荐"这里的polyfill ...任何人都有任何想法?

css css-selectors css3 polyfills selectivizr

13
推荐指数
1
解决办法
3942
查看次数

我可以和Bluebird.js做一个"懒惰"的承诺吗?

我想要一个等待直到then它运行之前被调用的承诺.也就是说,如果我从未真正打过电话then,承诺将永远无法运行.

这可能吗?

javascript promise bluebird

13
推荐指数
1
解决办法
2985
查看次数

咏叹调标签是否会阻止辅助设备读取内部内容?

MDN文档说,你应该使用aria-label这样的:

<button aria-label="Close" onclick="myDialog.close()">X</button>
Run Code Online (Sandbox Code Playgroud)

我无法访问屏幕阅读器,但我看到Stack Overflow上的注释表明aria-label它不会替换内部内容,它只是前缀.因此,在上述情况下,它会读出"关闭X",这显然不是理想的.

这是真的?如果是这样,解决方案是什么?我猜测用一个[aria-hidden=true]元素包装内部内容是有意义的,如下所示:

<button aria-label="Close" onclick="myDialog.close()"><span aria-hidden="true">X</span></button>
Run Code Online (Sandbox Code Playgroud)

...但我很谨慎,因为我无法在真正的屏幕阅读器上测试它.

html wai-aria

13
推荐指数
2
解决办法
2924
查看次数

如何在桌面浏览器中从触控板捕获捏合缩放手势(并防止默认)?

如果您在带有触控板的笔记本电脑上的 Chrome/Firefox 中打开 Google 地图,如果您进行捏缩放,它只会缩放地图,而浮动 UI 元素将保持静态。所以我知道我想做的事情是可能的。

浏览器似乎不会touch*在桌面浏览器上为触控板触摸发出事件,但它确实为触控板捏合缩放手势发出一系列wheel事件(event.ctrlKey设置为)。true

问题是,即使使用event.preventDefault(),浏览器仍然总是缩放整个页面。似乎调用preventDefault()事件wheel只会在控制台中打印此警告(Chrome 92):

[Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/features/6662647093133312`
Run Code Online (Sandbox Code Playgroud)

(警告中的 URL 似乎没有任何用处。)

我尝试使用与 Google 地图 ( ) 相同的元视口标签,<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">但没有帮助。

那么谷歌地图是如何做到的呢?当您在触控板上进行捏合缩放时,它们如何防止默认行为(缩放整个页面)?

javascript

13
推荐指数
1
解决办法
3287
查看次数

为什么babel-node不能用于生产?

巴贝尔节点文档进行严厉的警告:

不适合生产使用

你不应该babel-node在生产中使用.由于高速缓存存储在存储器中,因此存储器使用率很高,这是不必要的.您还将始终体验启动性能损失,因为整个应用程序需要动态编译.

让我们打破这个:

  • 内存使用情况 - 嗯?无论如何,所有模块都会在内存中"缓存",以保证应用程序的生命周期.他们在这里得到了什么?

  • 启动惩罚 - 这是一个性能问题?部署Web应用程序已经需要几秒钟(如果您在CI中进行测试,则需要几分钟).添加半秒到启动意味着什么.事实上,如果启动时间在任何地方都很重要,那么它在开发中比生产更重 如果您经常重启Web服务器以至于启动时间成为问题,那么您就会遇到更大的问题.

此外,没有关于在生产中使用Babel的require hook(require('babel-register'))的警告,尽管这可能与babel-node完全相同.例如,您可以执行node -r babel-register server.js并获得与之相同的行为babel-node server.js.(我的公司在数百个微服务中完成了这一点,没有任何问题.)

巴贝尔的警告只是FUD,还是我错过了什么?如果警告有效,为什么它也不适用于Babel require hook?


相关:在生产中使用babel-node是否可以 - 但是这个问题只是询问是否建议使用生产,答案只是引用官方建议,即"否".相反,我质疑官方建议背后的原因.

babeljs

12
推荐指数
1
解决办法
658
查看次数