Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript application.js中的Rails根路径_Javascript_Ruby On Rails_Codemirror - Fatal编程技术网

Javascript application.js中的Rails根路径

Javascript application.js中的Rails根路径,javascript,ruby-on-rails,codemirror,Javascript,Ruby On Rails,Codemirror,如何在我的application.js文件中获得项目的根路径 我需要一个js插件(codemirror),它需要加载其他js文件。如果我说“/javascripts/needed_file.js”就可以了,但是如果我将我的项目部署到“/custom”呢 代码需要在整个项目中发挥其魔力,我希望它是UJS,所以它需要在一个静态javascript文件中 有什么解决方案/简单的技巧吗?没有漂亮的解决方案。我会尝试以下方法之一: 检查window.location.pathname。由此确定是从根目录

如何在我的application.js文件中获得项目的
根路径

我需要一个js插件(codemirror),它需要加载其他js文件。如果我说“/javascripts/needed_file.js”就可以了,但是如果我将我的项目部署到“/custom”呢

代码需要在整个项目中发挥其魔力,我希望它是UJS,所以它需要在一个静态javascript文件中


有什么解决方案/简单的技巧吗?

没有漂亮的解决方案。我会尝试以下方法之一:

  • 检查
    window.location.pathname
    。由此确定是从根目录运行还是从前缀url运行

  • 添加类似于
    var ROOT\u PATH=''的内容位于布局文件顶部的某个位置

  • 使用这个相当粗糙的函数(我怀疑它可能会与一些HTML5脚本属性冲突):


    • 我的头文件中有这个

      <script type="text/javascript">
        var BASE_URL = '<%= root_url %>';
      </script>
      
      
      var BASE_URL='';
      
      好吧,我发现最好的方法就是利用JS的强大功能,比如:

      window.location.origin # http://localhost:3000/
      
      它将为您提供完整的主机名、http://
和端口号。就像在本地运行Rails服务器一样,它将为您提供:
http://localhost:3000

window.location.hostname # localhost

它只会告诉你主机名,而不会告诉你端口或HTTP。如果Rails服务器在本地运行,它将为您提供:
localhost

我的站点中实际上有一个指向主页的链接。。。因此,它就像$('#header a').attr('href')一样简单。虽然还很老套,但它很管用,所以我没什么可抱怨的。。谢谢
方法是我认为最好的方法(因为有一天你可以更改你的横幅、更改链接、更改选择器等等)
window.location.hostname # localhost