1

这在我的开发环境中工作得很好(我正在重写一个 css 文件):

File.open(RAILS_ROOT + '\public\stylesheets\colors.css', 'w') do |w|  
    w.puts 'some_text'
end

但是当我在我的 prod 环境中(在 Dreamhost 上)运行它时,什么也没有发生——文件没有被修改——什么也没有。

我需要做的是覆盖现有文件,我似乎无法在生产中弄清楚。我什至将 chmod 设置为 777 并没有改变任何东西,它似乎也没有任何东西出现在日志中?

我是 RoR 的菜鸟,感谢您的帮助。

4

2 回答 2

3

\public\stylesheets\colors.css当您真的想写入一个调用的文件时,您正在写入一个调用colors.css的文件/public/stylesheets/

反斜杠 ,\是 POSIX 文件系统中的有效文件名字符,但在 NTFS 中是目录分隔符。将反斜杠更改为正斜杠。

于 2010-08-21T21:45:52.733 回答
-2

我很确定你必须重新启动服务器才能看到生产模式的变化,即使对于像 css 文件这样的公共资产也是如此。您要么需要将 css 更改保存在数据库中并动态加载它们,要么更改您的环境/production.rb 文件以重新加载静态资产——但这显然会很慢。

于 2010-08-21T21:41:43.577 回答