[英]Rails asset pipeline returning 404
我机智! 我继承了Rails应用程序-以前的开发人员决定不使用资产管道,并基本上删除了所有配置选项。 我正在尝试放回去。
系统如下:
*问题*
资产管道针对application.js和application.css返回404。
* 设定 *
app / assets文件夹均按照基本的Rails 3安装进行设置。
** Gemfile **
gem 'sass-rails'
gem 'jquery-rails'
gem 'coffee-rails'
gem 'uglifier'
布局文件
<%= stylesheet_link_tag "application", media: 'all' %>
<%= javascript_include_tag "application" %>
application.rb资产相关选项
config.assets.enabled = true
config.assets.version = '1.0'
config.assets.serve_static_assets = true
config.action_controller.asset_host = Proc.new do |source, request|
"#{request.protocol}#{request.host_with_port}/-"
end
环境/development.rb资产相关的选项
config.assets.debug = true
环境/production.rb资产相关选项
config.assets.enabled = true
我正在使用rake asset:precompile进行编译,该编译成功在public / assets下创建了资产文件夹。 我在app / assets下的application.css和application.js中放了一行测试脚本,可以看到那些文件最终出现在public / assets中。
因此,所有文件似乎都可以正确编译...但是请求无法正常工作!
*问题*
在开发模式下,以上内容呈现:
<link href="https://example.com/-/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" />
<script src="https://example.com/-/assets/application.js?body=1" type="text/javascript"></script>
在生产中它呈现:
<link href="https://example.com/-/assets/application.css" media="all" rel="stylesheet" type="text/css" />
<script src="https://example.com/-/assets/application.js" type="text/javascript"></script>
所有这些都以404返回。
另外 :如果我将其他文件放在资产文件夹中,它们将被送达! 例如,我将文件foo.txt添加到已编译资产旁边的public / assets文件夹中,然后浏览到
https://example.com/-/assets/foo.txt
而且效果很好。 我将foo.txt更改为application.css;
https://example.com/-/assets/application.css
并且它是404s,即使我可以看到文件位于文件夹中-我也用谷歌搜索了这个地狱,所有迹象都指向该“ serve_static_assets”选项,但是如您所见,我将其设置为true(另外,我正在遍历apache,因此据说根本不必将其设置为true)。
如果有人知道这里发生了什么,我将非常感谢!
为什么Rails对于不同类型文件的请求会有不同的表现?
排序-一些木偶已在apache重写规则中添加,以确保所有css / js文件(正则表达式)都移至硬盘另一端的某个文件夹中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.