Access denied, Please sign in and make sure you have proper permission.
在 development 环境:
- 把图片放在 app/assests/images/目录下,直接 image_tag 调用吗?测试的时候失败了。
- Css, js 文件直接放到 app/asseste/javascripts 目录,
需要在 application.js 包含吗?需要运行 rake precompile 命令吗?
在 production 环境:
- js 性文件能有中文字符吗?
- Heroku 有什么特别需要改变的地方吗?
谢谢!
2. Css, js文件直接放到 app/asseste/javascripts 目录
需要在application.js 包含吗?需要运行 rake precompile 命令吗?
我不直接回答你了。你可以到官方文档的 Asset Organization 章节看 assests pipline 是怎么管理这些资源文件的
rake precompile
只是预先将所有 app/assests/
下的资源文件压缩合并然后放到 public 下。不手动执行也没有问题。
production 环境下的问题我不太清楚了。
1.图片加载
# app/assets/images/1.jpg
<%= image_tag "1.jpg" %>
- rake precompile 的作用是对 assets 中的文件进行打包,添加指纹识别,方便 nginx,apache 这样的服务器去静态的 serve
在 config/environment/*.rb 中定义了:
ruby
# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false
设置为 true 就可以直接 servepublic/assets
中预编译好的资源文件
由于预编译只编译application.css
和application.js
和其他不是 js,css 后缀的文件 所以最好在 application.js 中如下引用
ruby
//= require self
//= require_tree .
js 和 css 的预编译产生结果不同,js 如上引用后只产生一个 application.js,所有代码压缩在它里面
而 css 只是简单的@import
所以仅仅像上述引用,编译后还是提示找不到,如下设置
ruby
# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
config.assets.precompile += ['what_ever_you_want']
添加上所有的 css 文件
在 production 环境中如上所述由于会压缩 js 文件所以有些 js 脚本压缩后 (不知道什么原因,大概是不够规范) 会报错,影响程序运行,所以尽量不要用中文吧