小编Syd*_*ney的帖子

Rails:Sprockets :: Rails :: Helper :: AssetNotPrecompiled正在开发中

我对Rails相对较新,我正在尝试在开发环境中使用资产管道SCSS.但是,在我创建控制器,视图和css.scss文件后,我遇到以下错误:

Sprockets::Rails::Helper::AssetNotPrecompiled

这是错误消息:

资产未声明在生产中预编译.添加 Rails.application.config.assets.precompile += %w( public.css )config/initializers/assets.rb和重新启动服务器

我读到在开发过程中,资产即时编译,无需预编译.为什么会出现预编译错误?Rails是否认为我在生产而不是开发?

2016年3月1日编辑------

我刚刚意识到在config/initializers/assets.rb上添加文件是有效的.但这是正确的方法吗?我必须在assets.rb中手动添加所有css/js/jpg文件才能工作.我觉得这在某种程度上违反了DRY原则.

css ruby-on-rails sass

7
推荐指数
7
解决办法
8801
查看次数

如何使用 express-jwt 重定向到未经身份验证的用户

这是我的第一个快递应用。我正在尝试对某些路由实施身份验证。理想情况下,如果用户未通过身份验证,他们将被重定向到主页。所以我写了这个中间件:

var jwt = require('express-jwt');

app.get('/protected',
  jwt({secret: 'shhhhhhared-secret'}),      //express-jwt middleware
  function(req, res, next) {                //redirection middleware
    if(!req.user._id){
      console.log('authentication failed')
      res.redirect('/home')
    }else{
      next()
    };
  });
Run Code Online (Sandbox Code Playgroud)

如果用户已登录,则代码有效。但是,如果用户未登录,浏览器只会显示 401 未经授权的错误。没有重定向。该过程在 express-jwt 中间件失败,并且没有继续到我的重定向中间件。

我需要在 jwt 函数中设置一些配置吗?或者有没有办法在遇到 401 时设置全局重定向。

node.js express express-jwt

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

jsFiddle中逻辑运算符中的圆括号

不确定这个问题是因为jsFiddle中的错误还是我对javascript圆括号的误解.我有这个代码:

let x = 5
(x > 0) && console.log('hello')
Run Code Online (Sandbox Code Playgroud)

这不起作用.但是,以下没有括号工作.

x > 0 && console.log('hello')
Run Code Online (Sandbox Code Playgroud)

我的印象是我可以在条件下使用圆括号将事物分组在一起.我不知道为什么我的第一行代码不起作用.这是我对圆括号的误解吗?

我实际上是想在这个jsFiddle代码中教别人一个更高级的例子.https://jsfiddle.net/x616atk0/

javascript conditional-statements jsfiddle

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

即使使用 Object.assign,Redux 初始状态也会发生变化

这是我在实际应用中遇到的问题的简单复制。 https://jsfiddle.net/zqb7mf61/

基本上,如果您单击“更新待办事项”按钮,文本将从“Clean Room”更改为“Get Milk”。“Clean Room”是reducer 初始状态中的一个值。然后在我的 React 组件中,我实际上尝试克隆状态并变异克隆以将值更改为“获取牛奶”(第 35/36 行)。令人惊讶的是,即使我尝试不对其进行变异,初始状态本身也发生了变异(如第 13 行所示) .

我想知道为什么 Object.assign 不适用于 redux。

这是来自 jsFiddle 的代码。

还原

const initState = {
    task: {id: 1, text: 'Clean Room'}
}

// REDUCER
function todoReducer (state = initState, action) {
  switch (action.type) {
   case 'UPDATE_TODO':
        console.log(state)
        let newTodo = Object.assign({}, state)  // here i'm trying to not make any changes. But i am surpise that state is already mutated.
      return newTodo
    default:
        return state;
  }
}

// ACTION …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs redux

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