Rails - 如何在JavaScript中的Rails应用程序中获取文件路径?

问题描述:

我正在使用一个Rails应用程序,我试图在我的javascript中指定一个json文件路径。但是,似乎我无法按照我应该得到的文件。我尝试了两种:绝对路径和相对路径。但是,没有为我工作。我知道我在Rake任务中使用Rails.root来指定文件路径。但是,我现在需要的是在Rails应用程序中指定JavaScript内的文件路径。我正在试图找到flare.json文件。我把我的应用程序/资产/数据/ flare.json并试用了此:Rails - 如何在JavaScript中的Rails应用程序中获取文件路径?

<script type="text/javascript"> 

d3.json("/app/assets/data/flare.json", function(error, root) { 
..... 

} 

</script> 

但是,我得到的错误在JavaScript控制台:

GET `http://localhost:3000/app/assets/data/flare.json 404 (Not Found)` 

任何人都可以请帮我这是在Rails应用程序中用javaScript指定文件路径的正确方法?

那么,让我来得到这个权利,你想加载一个JSON文件与D3?如果是这种情况,请考虑这一点:浏览器内javascript环境无法访问服务器端的文件资源。您可以通过服务器专门公开文件来加载它们,然后通过AJAX请求使用JavaScript检索它们。因此,例如:

将文件移动到公共目录您的应用程序中,然后将JavaScript的改变

d3.json("/flare.json", function(error, root) { 
    ..... 
} 
+0

是的,这是正确的,我已经通过保留json文件公共目录昨天解决了这个问题:-)所以,接受和+1 :-) @mortz –

将这个在配置/ application.rb中

#启动资产管道

config.assets.enabled =真

config.assets.paths < <“#{} Rails.root/app/assets/something“

+0

不起作用。试过。 –