[英]Rails root_path in application.js
如何在application.js文件中獲取項目的root_path
?
我需要它來為需要加載其他JS文件的js插件( codemirror )。 如果我說“/javascripts/needed_file.js”,這一切都很好,但是如果我將項目部署到“/ custom”會怎么樣。
代碼需要在整個項目中完成它的魔力,我希望它是UJS,所以它需要在一個靜態的javascript文件中。
任何解決方案/簡單的黑客?
沒有漂亮的解決方案。 我會嘗試以下方法之一:
檢查window.location.pathname
。 從中確定是從根運行還是從前綴url運行。
在<script type="text/javascript" charset="utf-8">var ROOT_PATH = '<%= Rails.root_path %>';</script>
到布局文件的頂部。
使用這個非常hackish函數(我懷疑它可能會破壞一些HTML5腳本屬性):
function urlOfCurrentFile() { var scripts = document.getElementsByTagName("script"); return scripts[scripts.length - 1].src; }
我在頭文件中有這個。
<script type="text/javascript">
var BASE_URL = '<%= root_url %>';
</script>
好吧,我找到的最好方法是利用JS的強大功能,例如:
window.location.origin # http://localhost:3000/
它將為您提供完整的主機名, http://
和端口號。 就像在本地運行Rails服務器一樣,它會給你: http://localhost:3000
window.location.hostname # localhost
它只會給你主機的名稱,而不是端口或HTTP。 如果在本地運行Rails服務器,它會給你: localhost
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.