Rails Asset Pipeline 里,JS 代码注释不能有中文 (会编译报错) 大家都是用啥方案解决的?

1c7 · 发布于 2017年09月28日 · 最后由 ichord 回复于 2017年09月29日 · 390 次阅读
25844

花了我大概20分钟才定位到原来不是代码错了,只是因为

<%= javascript_include_tag 'application_v2', 'data-turbolinks-track': 'reload' %>

里面有写中文注释 。。。

几种方案:

  1. 完全前后端分离,就不用 asset pipeline 了,比如 vue
  2. 就不写中文注释了。都换成英文
  3. 放到 public 目录里,不过带来的问题是缓存问题。不像 pipeline 自动有一个不一样的文件名。
  4. ???

就是想问问大家一般都选什么方案解决?

共收到 13 条回复
96

随手试了一下,中文注释没问题,.js和.coffee都可以

25844
32nong 回复

whaaaaaat.. 我去试试

1

23333 任何问题转前后端分离

25844
1Rei 回复

哈哈哈是啊

25844
1Rei 回复

超彻底的解决方案

25844

我要结束这个帖子了,因为刚刚测试发现 asset pipeline 里有中文又不会报错了。

很奇怪,我记得上次调试的时候明明就是因为中文注释导致的,然后刚刚再去折腾一次又没问题了,反正蛮懵逼的。

25844 1c7 关闭了讨论 09月28日 11:51
25844 1c7 重新开启了讨论 09月28日 11:51
25844

算了还是留着,不关了,说不定半年之后谁可能也碰到这样的问题然后在下面接着讨论

0967c2

遇到过 dotenv 配置中文报错的,有些服务器报,有些不报

25844
0967c2pinewong 回复

哈哈哈

De6df3 huacnlee 关闭了讨论 09月28日 14:44
25844 1c7 重新开启了讨论 09月28日 19:03
25844

我又打开讨论了,发现问题是

RAILS_ENV=production bundle exec rails assets:precompile

会有问题。

而楼上刚刚讨论的,平时普通开发的时候,或者跑

bundle exec rails assets:precompile

都不会有问题,只是生产环境编译的时候就会有问题。

121
258441c7 回复

你的生产环境语言变量配置可能有的问题, 用 echo $LC_ALL 看一下设置是否是 utf8

25844
121lyfi2003 回复

好思路,谢谢!

818
  1. 用英文写注释
  2. 不写注释
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册