2017-05-24 123 views
1

我有一個簡單的應用程序構建與Create React App。我想在jinja模板中注入一些服務器數據。顯然,當地的WebPack服務器無法解析神社將服務器數據添加到index.html

<script type="text/javascript"> 
    window.SERVER_DATA = { 
     "company": {{ company|dumps|escapejson }} 
    }; 
</script> 

我沒有index.html中的訪問process.env.NODE_ENV !== "production"有沒有其他的標誌可以使用?

或者,我可以用try and catch

try { 
    window.SERVER_DATA = __SERVER_DATA__; 
    } catch(e) { 
     console.info('Development MODE', e) 
     window.SERVER_DATA = {}; 
    } 

但是,這是一個語法錯誤。

+0

我會考慮使用如Webpack如果你想訪問index.html中的NODE_ENV,這就是Vue在你構建Vue應用程序時如何創建它的開發/生產版本。 –

+0

@SimonHyll index.html中沒有'process' –

+0

不,但是您可以生成index.html或index.js,以將process.NODE_ENV變量設置爲'production'或'development',因爲大概您'你會發展你的網站的開發或發佈,這就是你想要的,對吧?所以,只要讓你的生成器(Webpack是我的建議)插入該變量到你的代碼。十分簡單。 –

回答

0

似乎做的最好的事情是捕獲錯誤

try { 
    window.pagedata = __SERVER_DATA__; 
} catch(e) { 
    console.info('Dev mode'); 
} 

然後

settings_page = render_template('index.html') 
return settings_page.replace(
    '__SERVER_DATA__', escapejson(dumps(server_data)) 
)