今天早上,我读了两篇关于重构的意见.
他们建议将代码分支(并随后合并)到:
根据我的经验(特别是与Borland的StarTeam合作),合并是一种非繁琐的操作.出于这个原因,我只在我必须时(即当我想要冻结候选版本时)进行分支.
从理论上讲,分支是有道理的,但合并的机制使其成为一种非常危险的操作.
我的问题:
- 合并代码感觉舒服吗?
- 您是否因为冻结候选版本以外的原因而分支代码?
我有一个带有两列的flexbox布局.
左列是固定的,而右边是可滚动的.
你怎么能这样做?
看看下面的代码:
#parent {
display: flex;
}
#left {
flex-grow: 1;
}
#left div {
position: fixed;
background: blue;
top: 0;
left: 0;
height: 100vh;
}
#right {
flex-grow: 5;
background: red;
height: 300vh;
}Run Code Online (Sandbox Code Playgroud)
<div id="parent">
<div class="child" id ="left">
<div>
ABC
</div>
</div>
<div class="child" id ="right">
DEF
</div>
</div>Run Code Online (Sandbox Code Playgroud)
我为我的Heroku应用设置了两个自定义域名.
example.com example.com.herokudns.com
*.example.com wildcard.example.com.herokudns.com
Run Code Online (Sandbox Code Playgroud)
我按如下方式配置了域名:
我添加了一个指向的CNAME记录.工作良好.*wildcard.example.com.herokudns.com
我URL使用GoDaddy的域转发工具转发,因为我只能将IP地址指定为A记录.
域转发指向example.com.herokudns.com.不幸的是,GoDaddy会自动添加http://,因此它实际上无法打开我的应用程序,而是显示一条Heroku消息:
这里什么也没有.
设置我的GoDaddy根域以指向我的Heroku应用程序.
注意: GoDaddy会自动添加指向的A记录@>>++FWD1++<<
我正在使用我的rails 5.1 app纱线(不是webpacker,只是默认的资产管道).
在开发环境中运行本地服务器,我的资产没有遇到任何问题.
但是一旦我预编译我的资产(环境无关紧要)或让Heroku打包我的资产,我从我的application.sass文件中导入的所有样式表(节点模块)都不再起作用了.
这种行为的原因是sass将所有文件编译成一个输出文件,但由于某种原因似乎错过了@import包含节点模块的语句并分别加载这些文件.
所以这:
@import "components/index.sass"
@import "nodemodule/nodemodule.css"
Run Code Online (Sandbox Code Playgroud)
在开发中编译到这个:
// content of "components/index.sass"
// content of "nodemodule/nodemodule.css"
Run Code Online (Sandbox Code Playgroud)
在生产中:
// content of "components/index.sass"
@import "nodemodule/nodemodule.css"
Run Code Online (Sandbox Code Playgroud)
虽然node_module/nodemodule.css单独加载为资产,但浏览器无法解析它.Javascript工作正常.
我正在尝试在后台处理我上传的图像(使用CarrierWave)(通过Sidekiq).
这是我的配置(carrierwave_delay gem):
class IconUploader < CarrierWave::Uploader::Base
def is_processing_delayed? img = nil
!! @is_processing_delayed
end
def is_processing_immediate? img = nil
! is_processing_delayed?
end
def is_processing_delayed= value
@is_processing_delayed = value
end
include CarrierWave::MiniMagick
storage :fog
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
process resize_to_fill: [500, 500]
version :large, if: :is_processing_delayed? do
process resize_to_fill: [192, 192]
end
version :medium, from: :large, if: :is_processing_delayed? do
process resize_to_fill: [144, 144]
end
def extension_whitelist
%w(png)
end
end
class App < ApplicationRecord
mount_uploader …Run Code Online (Sandbox Code Playgroud) 当使用 ajax 请求从 Rails 控制器操作获取响应时,我遇到了一些奇怪的行为。
$.ajax({
type: 'GET',
url: '/notifications',
success: function(result) {
eval(result);
}
});
Run Code Online (Sandbox Code Playgroud)
$.ajax({
type: 'GET',
url: '/notifications',
success: function(result) {
eval(result);
}
});
Run Code Online (Sandbox Code Playgroud)
因此,当使用带有railsremote: true选项的请求时,这个respond_to块工作得很好,但是使用ajax调用时,它只是将请求重定向到root_url.
当指定Ajax 请求时json。dataTypeso 很好地返回 JavaScript,但由于它无效json,因此eval()不会运行它。
有没有办法从 JavaScript 中启动 Rails 远程请求或指定返回的 JavaScript 可执行的数据类型?
即使在 ajax 调用中指定也dataType: 'text/javascript',无法解决问题。
我正在尝试声明要从 TypeScript 导入的特定 SCSS 模块。我有这个运行良好的声明文件:
declare module '*.scss' {
const styles: {
a: string
b: string
c: string
}
export default styles
}
Run Code Online (Sandbox Code Playgroud)
但我想以*.scss某种方式缩小范围,以便此声明文件仅适用于_variables.scss位于同一目录中的 SCSS 文件。
我试图*.scss用_variables.scssor替换,./_variables.scss但是 TypeScript 根本无法找到模块声明。
这可以用 TypeScript 实现吗?
我需要创建一个link_to到不同的子域.
这就是我想出的:
= link_to "Link to Subdomain", root_path(subdomain: "abc", param1: "value1", param2: "value2")
Run Code Online (Sandbox Code Playgroud)
虽然不行.我被重定向到:
http://lvh.me:3000/?param1=value1¶m2=value2
Run Code Online (Sandbox Code Playgroud)
注意:传递的as param subdomain未显示在url中.既不是子域也不是参数.
相反,我想重定向到以下URL:
http://abc.lvh.me:3000/?param1=value1¶m2=value2
Run Code Online (Sandbox Code Playgroud) 我覆盖了sass-loader配置,以包括node_modules路径:
// config/webpack/environment.js
const { environment } = require('@rails/webpacker')
environment.loaders.prepend('sass', {
test: /\.(css|scss|sass)$/,
use: [{
loader: 'style-loader'
}, {
loader: 'css-loader'
}, {
loader: 'sass-loader',
options: {
includePaths: ['node_modules'],
}
}]
})
module.exports = environment
Run Code Online (Sandbox Code Playgroud)
Webpack编译没有错误,但是不再输出application.css包。
我进行了更改,因为从我的Sass文件中导入的NPM插件(从其他插件中导入代码)在编译时会导致错误。
添加 ERB 加载程序并将.erb文件扩展名添加到我的application包(使用webpacker)后,我收到以下错误:
ERROR in ./app/webpack/packs/application.js.erb
Module build failed: Error: spawn bin/rails ENOENT
at _errnoException (util.js:1024:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)
at onErrorNT (internal/child_process.js:372:16)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
@ multi (webpack)-dev-server/client?http://localhost:3035 ./app/webpack/packs/application.js.erb
Run Code Online (Sandbox Code Playgroud)
样品hello_erb.js.erb包也会发生这种情况。
这是一个重现问题的示例应用程序:https : //github.com/jonhue/test_app
sass ×3
css ×2
ruby ×2
webpack ×2
webpacker ×2
ajax ×1
branch ×1
carrierwave ×1
css3 ×1
dns ×1
enoent ×1
erb ×1
flexbox ×1
heroku ×1
html ×1
ip ×1
javascript ×1
merge ×1
module ×1
node-modules ×1
redirect ×1
respond-to ×1
sass-loader ×1
sidekiq ×1
subdomain ×1
typescript ×1
url ×1
yarnpkg ×1