最好的解決方案是訪問webpack配置文件,並將包文件名設置爲靜態文件名。基於靜態文件內容的Hashname對於瀏覽器緩存很有用。但是,如果不需要這樣做,那麼最好的辦法就是彈出你的create-react-app並調整webpack配置。
要做create-react-app,可以分叉react-scripts模塊並做出這樣的調整。
如果您不想觸摸webpack配置(無論出於何種原因),則創建bash腳本的另一個不太可靠的方法是執行此操作。
此腳本與package.json位於同一目錄中,並從npm run build命令的輸出中查找軟件包的文件名。然後將css和js包複製到相應的css和js目錄下的django靜態文件夾中。
build-django-static.sh
#!/usr/bin/env bash
for bundle in $(npm run build | grep -o 'build\/static\/\S*')
do
filename=$(basename "$bundle")
extension="${filename##*.}"
outputpath=../core/static/${extension}/bundle.${extension}
cp $bundle $outputpath
echo copied $bundle to $outputpath
done
注意 - 這是在$ outputpath變量更改爲指向您的靜態的Django目錄的正確路徑至關重要。
然後添加一個自定義的npm腳本到你的package.json中調用這個bash腳本。
npm run build-django-static
:
"scripts": {
...
"build-django-static": "bash ./build-django-static.sh"
...
}
然後從相同的目錄中的package.json運行以下命令調用腳本故宮