2016-07-25 55 views
7

運行後Create React Appnpm run build,創建index.html看起來是這樣的:創建-反應,應用CSS和JS路徑

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>React App</title><link rel="shortcut icon" href="/favicon.ico"><link href="/main.e606e04b6e0092a87205a9dc4662479c.css" rel="stylesheet"></head><body><div id="root"></div><script type="text/javascript" src="/main.35180d284d8a2058f717.js"></script></body></html> 

兩者scriptlinksrc/href -attributes,指向錯誤的方向。應該刪除領先的/,因爲所有生成的文件都在同一個目錄中。這是一個錯誤還是我可以以某種方式配置這些路徑?

+0

這不是一個錯誤。它確保它將不同路線上的這些特定文件放在索引的 –

回答

20

生成的文件應該從Web服務器提供。當您運行npm run build時,您應該看到有關在該目錄中啓動簡單本地Web服務器的說明。如果您將此目錄部署到真實的Web服務器並從根服務器index.html,它也將正常工作。

如果生成的文件引用的腳本沒有/,那麼只要添加客戶端路由,您的站點就會中斷。例如,如果應用程序位於mysite.com,但也處理類似mysite.com/about的URL,則相對路徑會導致腳本從mysite.com/about/*.js加載,這將是404錯誤。這就是爲什麼所有路徑默認從root開始

如果你想從一個子目錄滿足您的應用程序(從例如myuser.github.io/myproject),你將需要添加"homepage"場在package.json,例如:

"homepage": "http://myuser.github.io/myproject" 

創建反應應用將推斷正確的根路徑基於homepage設置。此功能自[email protected]

請閱讀deployment instructions瞭解更多信息。

+0

之外。好的,謝謝! – Chris

+4

我設置了'{「homepage」:「。」}',然後重新運行'phonegap run build'。鏈接更改爲'src =「./main.123456.js」'。現在我的應用程序在phonegap上工作:-) – OoDeLally

+2

儘管在某些情況下可行,但我們並不正式支持'{「homepage」:「。」}}。它在其他情況下打破。 –