如何設定 apache2 以從伺服器根子目錄提供靜態資源?

如何設定 apache2 以從伺服器根子目錄提供靜態資源?

這裡是前端開發人員 - 我剛剛繼承了一台伺服器(Mac Pro)來在我們的網路中託管我的原型。上面已經設定了一個apache伺服器,但我不太了解它的配置。這是一個共享伺服器,因此雖然伺服器根目錄設定在/Users/Shared,但我只有權限將我的原型放置在

/Shared/mydiv/mydept/prototypes

我使用 webpack 建立我的網站,並將靜態資源放置在一個dist目錄中。伺服器配置正常;使用者可以瀏覽sharedserver.url.com/mydiv/mydept/prototypes並正確提供index.html。

問題是 index.html 引用scripts.js,也位於該dist目錄中,但 Web 伺服器正在 shareserver.url.com 的伺服器根目錄中查找它們,這顯然會傳回 404。

我在index.html 中引用腳本,如下所示:

<script src="scripts.js"></script>

同樣,我需要引用位於dist/fonts.

sharedserver.url.com/   <-- APACHE TRYING TO ACCESS STATIC ASSETS HERE
|_mydiv/
   |_ mydept/
      |_ prototypes/
         |_ _ dist/
                |_ index.html
                |_ scripts.js  <-- REALLY WISH APACHE LOOK FOR STATIC ASSETS HERE 
                | _ _fonts/
                       |_.eof,.ttf,etc.

我讀過一些有關使用虛擬主機的內容,但該模組尚未加載到 httpd.conf 中(已註釋掉),並且我不想與現有配置發生衝突,我還沒有完全理解這一點。我還讀過有關.htaccess 檔案的內容,但在httpd.conf 中將AllowOverride 設為None - 我可以更改它,然後開始學習.htaccess 但我想知道是否還有另一種方法,因為我沒有經驗設置此類事情。

有其他(簡單的)方法可以讓 apache 在我的目錄中找到我的靜態資產嗎?

答案1

我認為這是因為你的文檔根目錄是這樣設定的

DocumentRoot "/sharedserver.url.com"

你想要這樣的:

DocumentRoot "/sharedserver.url.com/mydiv/mydept/prototypes/dist"

且目錄路徑必須與文檔根目錄相同

<Directory "/sharedserver.url.com/mydiv/mydept/prototypes/dist">

如果您這樣做並使用您的網域網址,您將被帶到index.html並且您的腳本將正確顯示

我希望這能解決你的問題

答案2

base我遇到了同樣的問題,在我的情況下,這是由index.html 的 head 部分內的標籤值引起的:

<base href="/">

這會將相對 URL 的基本 URL 設定為伺服器根目錄。我可以透過刪除/更改標籤來解決問題base

我希望這有幫助。

相關內容