我正在使用Ruby on Rails应用程序,我需要将一些csv格式的数据加载到JS脚本中进行处理。
我的csv文件位于app/assets
,而我的js文件是app/assets/javascripts
,我使用以下代码assets.rb
处理:
Rails.application.config.assets.precompile += %w( myscript.js )
在$.ajax({
url: "assets/mycsvfile.csv",
async: true,
success: function (csvd) {
// processing csv data
},
error: function(e) {
var errorMsg = e? (e.status + ' ' + e.statusText) : "";
console.log(errorMsg);
},
dataType: "text"
});
我还是
找不到404文件
如何加载该csv文件?
由于
答案 0 :(得分:1)
将文件mycsvfile.csv
放在Rails应用程序的“public”目录中。
然后,您可以直接从YOURDOMAIN/mycsvfile.csv
请求加载它。
编辑:
由于您不想使用公共URL,您必须使用HTTP服务器身份验证或Rails服务器来处理文件下载。
要使Rails应用程序处理文件下载,请使用send_file
命令。
在提供静态文件之前,您将能够在控制器中检查正确的用户权限。
示例:
class ClientsController < ApplicationController
# Stream a file that has already been generated and stored on disk.
def download_pdf
client = Client.find(params[:id])
send_file("#{Rails.root}/files/clients/#{client.id}.pdf",
filename: "#{client.name}.pdf",
type: "application/pdf")
end
end
来源:http://guides.rubyonrails.org/action_controller_overview.html#sending-files