2016-06-08 61 views
1

我有一個使用React-Router的React webapp。我想使用漂亮的網址,並且有thus opted to use browserHistory for manipulating the URL在Docker的外部卷中設置.htcaccess不起作用

我想使用Docker來設置服務器,並選擇nimmis/apache-php5,我連接到這樣的外部卷,或多或少;

docker run -d -p 80:80 -v ~/externalFolder/:/var/www/html/ nimmis/apache-php5. 

爲了使React-Router的browserHistory正常工作,我需要像這樣設置.htaccess;

RewriteBase/
RewriteRule ^index\.html$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.html [L] 

我覺得如果我在外部音量的根部有這個,應該都不錯。但它不起作用。

我該如何得到這個工作?

+0

它是'.htaccess',而不是'.htcaccess'。你的文件名是否也有這個錯字? –

+0

不,錯字只出現在我的文章中。 :P –

回答

0

除了.htaccess文件中可能的拼寫錯誤外,請確保使用絕對路徑而不是~(應該由shell作爲絕對路徑解析,但最好確定並自行指定)。

從 「​​」

  • container-dir必須始終是絕對路徑如/ SRC /文檔。
  • host-dir可以是絕對路徑或名稱值。如果您爲host-dir提供絕對路徑,則Docker將綁定到您指定的路徑。
docker run -d -p 80:80 -v /home/<yourLogin>/externalFolder/:/var/www/html/ nimmis/apache-php5 
+0

這也沒有用,恐怕。 –

+0

@RikNieu然後嘗試使用'docker exec bash'來檢查正在運行的容器中的* .htaccess(及其右側)的內容。 – VonC

+0

@RikNieu仔細檢查'docker logs '(https://docs.docker.com/engine/reference/commandline/logs/)的輸出以查看是否有任何線索。 – VonC

1

我試圖使用的碼頭工人形象是太有限,我需要定製太多(額外模塊和安裝等),所以我乾脆選擇推出自己的碼頭工人圖像。我也去了nginx。

+0

從合適的基礎圖像展開自己的圖像也是一個很好的解決方案。 +1 – VonC