RAILS_ENV=production bundle exec rails assets:precompile
会出错。
尝试过这个方法:
(在 rails console 里一个个编译,然后看是哪个文件的问题)
https://stackoverflow.com/questions/30422437/execjsprogramerror-unexpected-token-punc-expected-punc-when-running
JS_PATH = "app/assets/javascripts/**/*.js";
Dir[JS_PATH].each do |file_name|
puts "\n#{file_name}"
puts Uglifier.compile(File.read(file_name))
end
定位到了是哪个文件,但没说问题是哪一行,所以还是无法解决。
https://github.com/browserify-rails/browserify-rails/issues/137#issuecomment-179461412
这个是注释掉 config/environments/production.rb
里的 config.assets.js_compressor = :uglifier
当然这个会导致代码没有压缩,保持原样
最后没有用 2 的方式解决,
没有去注释掉 config/environments/production.rb
里的 config.assets.js_compressor = :uglifier
看了下是 uglifier 不支持 ES6(当前时间 2017 年 11 月 15 日)
uglifier ES6 相关讨论只看到这一条:https://github.com/lautis/uglifier/issues/116
最后发现问题是
setTimeout(() => {
jQuery('#app').addClass('event_open');
}, 1000);
我没注意这里 ES6 的语法
改成了:
setTimeout(function(){
jQuery('#app').addClass('event_open');
}, 1000);
问题解决!
真希望管理能加个精啊。。
刚更新了第 12 ~ 15 集。
可以关注字幕组微博:https://weibo.com/u/5237129097?wvr=5
或者这个 Github Repo:https://github.com/1c7/crash-course-computer-science-chinese
这样可以时间线上看到更新通知。 (或者直接关注对应的 B 站 up 主也行,方式随意,我只是列出来有哪些方式可行)
感谢~
楼主表示很蛋疼,话题方向已经不知道扯到哪里去了……
感谢
嗯,现在网站还很小,所以打算做成 SPA。所以拆。(yuzhu.me) 这个是今年 7 月份开始的新项目,不是那种成熟公司里的存在时间蛮长的项目。
多谢建议!我打算直接从头就开始拆开,免得之后费事
嗯,我也是觉得这样揉在一起不太好,项目一开始只有我一个人倒是无所谓,
后面如果招了专门的前端,又得费力从 Rails 文件夹里拆出来。
为啥不提供一个公司产品的官网地址看看?
你们项目现在是用的啥?Vue?React?和 Rails 完全拆开来用? 比如 Vue 的东西直接让 nginx 来返回?然后 Rails 就纯 API?用了 JWT 之类的?(我也是刚开始学 JWT = = ) 或者是放在 Rails 的 public/ 里?或者用了什么 gem 之类的来和前端框架整合??
嗯我也是觉得复杂,一堆配置都晕了要。时髦值哈哈哈
回复真快。。
嗯嗯,但是对于我前端比较弱这种,感觉还得去官网刷一遍 webpack 教程,感觉门槛反而提高了一些。 似乎直接看 Vue 官网撸 vue init webpack-simple xxx 然后照着 vuex vue-router 官网文档做还简单些。 主要是想看看其他人用的咋样。都怎么用。
支持支持~~~ 想要~~
嗯,QQ 企业邮箱我仔细看了没发现发邮件的 API,到处翻了都没有,我猜 2013 年的时候有吧,现在拿掉了。 https://exmail.qq.com/portal/product/function
我现在 SendCloud 免费套餐,限额每天 160 封,暂时够用,因为只有"找回密码"在用(甚至注册的时候都没有邮件确认) 多谢如此详细的回复~
噢这样,好~ 谢谢!我还以为 SendCloud 发海外是自动的完全不用配,原来还得申海外通道。。
没理解你的意思,所以只用 SendCloud 就好了?因为海外会自动走 SendGrid 所以不用担心了? 还是最好自己判断是国内还是国外?然后自己在程序里选用 SendGrid/SendCloud 发?
好~ 以后如果测了会过来更新结果。因为主要针对国内,我现在用 SendCloud 完全没问题,我的 gmail 和 qq 邮箱都收得到,很满意,所以就暂时不折腾 SendGrid 了
原来这样,非常感谢!
同上,项目介绍太少了。
不发个 dribble 或者 behance / 站酷链接么
酷
居然没人回答。。 我也碰到这个问题来着,最后用这里的方法解决了:https://github.com/rails/rails/issues/22965 @afair 的回答
我碰到的问题是处理 CORS 跨域问题在 nginx 改了不少配置,然后也全部换成了 https。 然后 devise 成功登录之后,访问本应该可以访问的页面给我 401 然后又跳到登录页面。 看到
HTTP Origin header (https://yuzhu.me) didn't match request.base_url (http://yuzhu.me)
查到上面的答案之后加了这些
问题解决。
好思路,谢谢!
我又打开讨论了,发现问题是
RAILS_ENV=production bundle exec rails assets:precompile
会有问题。
而楼上刚刚讨论的,平时普通开发的时候,或者跑
bundle exec rails assets:precompile
都不会有问题,只是生产环境编译的时候就会有问题。
哈哈哈
我最近也刚开始用 SendGrid,因为看到湾区日报用的是 SendGrid。。暂时还没碰到啥奇葩问题。。 前天配了个 discourse 论坛用的就是 SendGrid,除了慢一点用还是可以用的。。 接下来打算在网站里也用,因为找回密码也要发邮件来着…
所以你接下来就一直用 SendCloud 了吧?
算了还是留着,不关了,说不定半年之后谁可能也碰到这样的问题然后在下面接着讨论
我要结束这个帖子了,因为刚刚测试发现 asset pipeline 里有中文又不会报错了。
很奇怪,我记得上次调试的时候明明就是因为中文注释导致的,然后刚刚再去折腾一次又没问题了,反正蛮懵逼的。