我有一个列表,并希望将列表的元素分解为全局环境中的单独对象.
例如,我想要列表:
obj <- list(a=1:5, b=2:10, c=-5:5)
Run Code Online (Sandbox Code Playgroud)
是三个单独的对象a
,b
和c
.
我尝试用以下方法实现这一点:
lapply(obj, FUN = function(x) names(x)[1] <<- x[1])
Run Code Online (Sandbox Code Playgroud)
但它失败了Error in names(x)[1] <<- x[1] : object 'x' not found
.
我怎样才能实现目标?
当通过grails -Dgrails.env = custom run-app运行带有grails的自定义环境时,似乎关闭了自动重新加载/热部署,是否有人知道如何在任何给定环境中任意启用此设置,而不仅仅是dev,是默认情况下它实际上唯一的环境?
我之前已经问过类似的问题,但我没有找到任何针对我情况的具体答案.
我有一个在多个环境(本地,开发,生产)上运行的ExpressionEngine站点,并且每个环境都需要不同的.htaccess规则:
所有环境
发展
生产
本地
我已经看到很多关于如何为每个模块设置特定环境的示例.就像RewriteCond %{REQUEST_HOST} ^dev.myurl.com
mod_rewrite模块一样,对于.htpasswd要求这样的技巧.
但我真正喜欢的是设置全局环境变量的一些方法,然后在每个环境的.htaccess文件中重用这些变量.以伪javascript为例,类似于:
var local = 'mysite.local';
var development = 'dev.mysite.com';
var production = 'www.mysite.com';
// Global .htaccess rules
if(environment == local){
// Local environment .htaccess rules
}
if(environment == development){
// Development environment .htaccess rules
}
if(environment == production){
//Production envirotnment .htaccess rules
}
Run Code Online (Sandbox Code Playgroud)
这样,所有特定于环境的规则都被组合在一起,形成一个非常干净的文件,并且如果环境发生更改,则只需要更改一个变量.
我已经看到一些改变Apache配置文件中的设置的引用,但显然如果我正在处理第三方主机,这不是一个可行的选择.
这就是天上一厢情愿的想法,还是可以做到的?
如果我创建一个函数如下:
what_is_love <- function(f) {
function(...) {
cat('f is', f, '\n')
}
}
Run Code Online (Sandbox Code Playgroud)
并称之为lapply
: funs <- lapply(c('love', 'cherry'), what_is_love)
我得到了意外的输出:
> funs[[1]]()
f is cherry
> funs[[2]]()
f is cherry
Run Code Online (Sandbox Code Playgroud)
但请注意,当您不使用时,情况并非如此lapply
:
> f1 <- what_is_love('love')
> f2 <- what_is_love('cherry')
> f1()
f is love
> f2()
f is cherry
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?
我知道funs <- lapply(c('love', 'cherry'), what_is_love)
可以写得更全面:
params <- c('love', 'cherry')
out <- vector('list', length(params))
for (i in seq_along(params)) {
out[[i]] <- what_is_love(params[[i]])
}
out
Run Code Online (Sandbox Code Playgroud)
但是当我浏览时,我发现两个函数都有自己的环境: …
假设我的内存值很大(可能是一个巨大的矩阵).有没有办法将该值移动到不同的环境而不是复制然后删除?复制/克隆方法会临时增加内存占用量的大小.
我查看了这篇文章,但它不包含我的问题的解决方案.共享相同的环境(避免复制)不是一种选择.我确实需要移动价值.
我想以灵活的方式指定功能.当我在其后创建另一个函数时,如何确保给定函数的环境不会改变.
为了说明,这适用于:
make.fn2 <- function(a, b) {
fn2 <- function(x) {
return( x + a + b )
}
return( fn2 )
}
a <- 2; b <- 3
fn2.1 <- make.fn2(a, b)
fn2.1(3) # 8
fn2.1(4) # 9
a <- 4
fn2.2 <- make.fn2(a, b)
fn2.2(3) # 10
fn2.1(3) # 8
Run Code Online (Sandbox Code Playgroud)
事实并非如此
make.fn2 <- function(a, b) {
fn2 <- function(x) {
return( x + a + b )
}
return( fn2 )
}
a <- 2; b <- 3 …
Run Code Online (Sandbox Code Playgroud) 我正在使用 Firebase 构建一个 Web 应用程序。目前我可以说我有两个阶段 - 开发,firebase serve
运行本地主机和firebase deploy --only hosting
在 Firebase 托管上上传 Web 应用程序。
一切都很好,但我不认为这是一个专业的解决方案。我看到的问题是,我的本地环境和实时 Web 应用程序共享同一个数据库。我对该主题进行了大量研究,并且我了解到 Firebase 上的每个项目无法拥有两个数据库。那里提供的解决方案是在 Firebase 上创建两个项目,一个用于开发,一个用于生产。或者,即使您愿意,也可以使用一个进行分期。
这个解决方案对我来说似乎完全没问题。这肯定是个好主意。几个项目,几个环境,单独的数据库,非常完美。然后就在实施这个解决方案之前,我的脑海中又出现了另一个问题。如果我说,让我们创建一个登台项目,以便为我提供登台环境,并且我决定部署我的 Web 应用程序,那么登台 Web 应用程序将是公开可用的,因此它也会被 Google 索引等等。
那么,在这种情况下,你能给我什么建议?我如何确保我的暂存 Web 应用程序(托管在暂存 Firebase 应用程序上)对其他人不可用并且不会被搜索引擎索引。我想过将 IP 或 VPC 列入白名单,但我不知道如何以一种免费且可靠的方式进行。
我试图弄清楚如何在Flutter项目中设置不同的Firebase环境。
我了解如何在Firebase中执行此操作,我创建了两个项目,一个用于生产,一个用于测试。然后,在iOS或Android项目中,我可以使用各种方法使用单独的google-services.json
或GoogleServices-Info.plist
文件在这两种环境之间切换。
在扑我发现这个如何独立的环境的描述,但它只是说明如何在扑代码环境区分。
如何在编译时更改iOS和Android构建的环境?仅在构建时允许文件复制挂钩就足够了。
我想将我的application.css文件更改为sass文件,并使用@import来提取所有必需的文件.然后我想将application.css.sass @import转换为特定于页面的sass文件.这一切在开发中都很漂亮,但是当我将它推送到heroku上的生产环境时,我得到了这个错误:
Error compiling CSS asset
Sass::SyntaxError: File to import not found or unreadable: application
Run Code Online (Sandbox Code Playgroud)
application.css.sass:
@import "reset"
@import "typography"
@import "buttons"
@import "junk"
$yellow: #f0f090
$orange: #f89818
$blue1: #184898
$blue2: #4888c8
body
background: ...
...
/* all the rest of the app-wide styling */
Run Code Online (Sandbox Code Playgroud)
uniquePage.css.sass:
@import "application"
/*page specific styling*/
Run Code Online (Sandbox Code Playgroud)
然后在需要与application.css不同的东西的页面上调用
!!! 5
%html
%header
= stylesheet_link_tag "uniquePage"
Run Code Online (Sandbox Code Playgroud) 我在Heroku上运行了两个应用程序,一个是myapp-production,另一个是myapp-staging.
但是,出于某种原因,登台应用程序使用生产环境配置而不是我在staging.rb中定义的登台配置.
我设置登台应用程序的方式是运行
heroku create --stack cedar --remote staging
Run Code Online (Sandbox Code Playgroud)
然后
heroku config:add RACK_ENV=staging --app myapp-staging
Run Code Online (Sandbox Code Playgroud)
然而,myapp-staging仍在使用生产配置.任何想法为什么以及如何解决这个问题?
environments ×10
r ×4
deployment ×2
firebase ×2
heroku ×2
staging ×2
.htaccess ×1
apache ×1
flutter ×1
grails ×1
memory ×1
mod-rewrite ×1
production ×1
sass ×1
scope ×1
variables ×1